📄 frmsystemdm.~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 + -