⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmsystemdm.~pas

📁 用Delhpi和mapx开发的警务管理系统
💻 ~PAS
字号:
unit frmSystemDM;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Db, ADODB, cls_BaseClass;//, WorddotRpt;

type
  TTableInfo = Record
   TableName : String;
   arrFieldInfo: array of array[0..5] of string;
   arrPrimaryKeyNames: array of string;

  end;
  pTlbInfo = ^TTableInfo;
 // TFieldInfo = Record
 //  sFieldName : String;
 //  sTypeName
 // end;

 TsystemDM = class(TDataModule)
    BasicDB: TADOConnection;
    ADOConnection1: TADOConnection;
    ADOConnection2: TADOConnection;
    ADOConnection3: TADOConnection;
    ADOConnection4: TADOConnection;
    procedure DataModuleCreate(Sender: TObject);
  private
    { Private declarations }
    //procedure GetTableName;
  public
    { Public declarations }
    Glb_BasicDataOperate:TDataOperate;
    Glb_Public : TPublic;
    arrTableInfo: array of pTlbInfo;
  end;

var
  systemDM: TsystemDM;
implementation
{$R *.DFM}



procedure TsystemDM.DataModuleCreate(Sender: TObject);
begin
  try
    Glb_DataOperate:=TDataOperate.Create(BasicDB,'DATABASE1');
    Glb_DataOperate.blnConnectDB;
    Glb_Public := TPublic.Create;
    Glb_Public.iInitClass;
    //GetTableName;
  except
    Application.MessageBox('数据类创建失败!','提示',mrok);
  end;
end;

{procedure TsystemDM.GetTableName;
var
 Qry_Temp: TADOQuery;
 I,J,K: Integer;
 pTempTblInfo: pTlbInfo;
 temp_sql:string;
begin
 Qry_Temp := TADOQuery.Create(nil);
 Qry_Temp.Connection := DBMain;
 with Qry_Temp do
 try
  Close;
  Sql.Text := 'select distinct table_name from USER_TAB_COLUMNS';
  Open;
  SetLength(arrTableInfo,RecordCount);
  for I := 0 to RecordCount - 1 do
   begin
    New(pTempTblInfo);
    pTempTblInfo^.TableName := FieldByName('table_name').AsString;
    Qry_Pub.Close;
    //Qry_Pub.SQL.Text := Format('Select column_Name,Data_Type,Nullable,Data_Precision,Data_Scale from USER_TAB_COLUMNS where Table_Name = ''%s'' order by COLUMN_ID',[pTempTblInfo^.TableName]);
    Qry_Pub.SQL.Text := Format('Select A.column_Name,A.Data_Type,A.Nullable,A.Data_Precision,'+
                               'A.Data_Scale,B.COMMENTS from USER_TAB_COLUMNS A,USER_COL_COMM'+
                               'ENTS B where A.Table_Name = ''%s'' AND B.TABLE_NAME=A.TABLE_N'+
                               'AME and B.COLUMN_NAME=A.COLUMN_NAME ORDER BY A.COLUMN_ID',[pTempTblInfo^.TableName]);
    Qry_Pub.Open;
    SetLength(pTempTblInfo^.arrFieldInfo,RecordCount);
    for J := 0 to Qry_Pub.RecordCount - 1 do
      begin
       pTempTblInfo^.arrFieldInfo[J,0] := Qry_Pub.FieldByName('column_Name').AsString;
       pTempTblInfo^.arrFieldInfo[J,1] := Qry_Pub.FieldByName('Data_Type').AsString;
       pTempTblInfo^.arrFieldInfo[J,2] := Qry_Pub.FieldByName('Nullable').AsString;
       pTempTblInfo^.arrFieldInfo[J,3] := Qry_Pub.FieldByName('Data_Precision').asstring ;
       pTempTblInfo^.arrFieldInfo[J,4] := Qry_Pub.FieldByName('Data_Scale').asstring;
       pTempTblInfo^.arrFieldInfo[J,5] := Qry_Pub.FieldByName('Comments').asstring;
       Qry_Pub.Next;
      end;

{     temp_sql:='select COLUMN_NAME from USER_CONS_COLUMNS WHERE TABLE_NAME=';
     temp_sql:=temp_sql+quotedstr(pTempTblInfo^.TableName)+' AND CONSTRAINT_NAME=(SELECT CONSTRAINT_NAME FROM USER_CONSTRAINTS WHERE TABLE_NAME=';
     temp_sql:=temp_sql+QuotedStr(pTempTblInfo^.TableName)+' AND CONSTRAINT_TYPE='+QuotedStr('P')+')';
     Qry_Pub.Close;
     Qry_Pub.SQL.Text :=temp_sql;
     Qry_Pub.Open;
     SetLength(pTempTblInfo^.arrPrimaryKeyNames,Qry_Pub.RecordCount) ;
     for  K:=0 to Qry_Pub.RecordCount - 1 do
       begin
         pTempTblInfo^.arrPrimaryKeyNames[K]:=Qry_Pub.Fieldbyname('COLUMN_NAME').asString;
         Qry_Pub.next;
       end;     

    arrTableInfo[I] := pTempTblInfo;
    Next;
   end;



 finally
  Qry_Temp.Free;

 end;
end;}

end.




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -