📄 ufrmpubimport.pas
字号:
with dbm.dbDB2 do
begin
if Connected then Connected := false;
// Params.Values['SERVER NAME'] := ServerName;
Params.Values['DB2 DSN'] := cbxAdb.Text;//'EPL';
Params.Values['USER NAME'] := edtAuser.Text;//'db2admin';
Params.Values['PASSWORD'] := edtApass.Text;//'yym';
Params.Values['BLOB SIZE'] := IntToStr( 1024*8 );
try
Connected := true;
except
ShowMSG('数据库链接错误,请重新设置');
exit;
end;
if Connected = true then
begin
ChangeStateA( True );
cbxAtb.Items.Clear;
with qryPubDB2 do
begin
Close;
// SQL.Text := 'SELECT * FROM SYSIBM.SYSCONSTDEP order by DTBCREATOR,dtbname';
SQL.Text := 'SELECT NAME,CREATOR,TBSPACE,DEFINER FROM SYSIBM.SYSTABLES where TBSPACE=''USERSPACE1'' order by CREATOR,NAME';
try
Open;
except
end;
// labMsg.Caption := '表数: '+ IntToStr(RecordCount);
while not Eof do
begin
// ss := FieldByName('DTBCREATOR').AsString+'.'+FieldByName('dtbname').AsString;
//"NAME",CREATOR
ss := '【'+FieldByName('CREATOR').AsString+'】'+FieldByName('NAME').AsString;
cbxAtb.Items.Add(ss);
Next;
end;
// labMsg.Hint := IntToStr( cbxAtb.Items.Count );
end;
end;
end;
end;
3: begin//Access [ADO]
if dlgOpenMDB.Execute then
begin
pnl1.Hint := dlgOpenMDB.FileName;
cbxAdb.Text := pnl1.Hint;
aPassWord := ExecAccessFile( pnl1.Hint );
edtApass.Text := aPassWord.PassCode;
// addMo( 'PassCode = '+ aPassWord.PassCode );
// addMo( '该数据库是:' + aPassWord.FileType );
// addMo( FormatDateTime( 'yyyy-m-d h:mm:ss',aPassWord.FileTime) );
if dbm.linkADOAccess( pnl1.Hint,edtApass.Text ) then
begin
ChangeStateA( True );
dbm.adocLink.GetTableNames( cbxAtb.Items,false);//B
// labBS.Caption := labBS.Hint + IntToStr( cbxAtb.Items.Count );
// grpZD.Caption := '字段';
// labJL.Caption := labJL.Hint;
end;
end;
end;
else Exit;
end;
end;
procedure TfrmPubImport.bbtUnLink1Click(Sender: TObject);
begin
inherited;
case cbxDBType1.ItemIndex of
0: begin//SQL Server [BDE]
if dbm.dbSQLServer.Connected then
dbm.dbSQLServer.Connected := False;
ChangeStateA( dbm.dbSQLServer.Connected );
end;
1: begin//MySQL [ODBC]
if dbm.dbODBCMySQL.Connected then
dbm.dbODBCMySQL.Connected := False;
ChangeStateA( dbm.dbODBCMySQL.Connected );
end;
2: begin//DB2 [BDE]
if dbm.dbDB2.Connected then
dbm.dbDB2.Connected := False;
ChangeStateA( dbm.dbDB2.Connected );
end;
3: begin//Access [ADO]
if dbm.adocLink.Connected then
dbm.adocLink.Connected := False;
ChangeStateA( dbm.adocLink.Connected );
end;
else Exit;
end;
cbxAtb.Items.Clear;
end;
procedure TfrmPubImport.cbxAtbChange(Sender: TObject);
var
ss : string;
i : Integer;
item : TListItem;
begin
inherited;
CheckBox2.Checked := False;
cbxAtb.Hint := '';
if cbxAtb.Items.Count<=0 then
begin
Exit;
end;
ss := cbxAtb.Text;
if Trim(ss)='' then
begin
Exit;
end;
//防止重复刷新
if SameText( ss,cbxAtb.Hint ) then
begin
exit;
end;
cbxAtb.Hint := ss;
mo.Text := 'select * from '+ss;
case cbxDBType1.ItemIndex of
0: begin//SQL Server [BDE]
with qryPubSQL do
begin
Close;
SQL.Text := 'select * from '+cbxAtb.Hint;
DataSource1.DataSet := qryPubSQL;
try
Open;
except
exit;
end;
labZD1.Caption := '字段: '+IntToStr( FieldCount );//字段数
labJL1.Caption := '记录: '+IntToStr( RecordCount );//记录数
lv1.Items.Clear;
for i := 0 to FieldCount-1 do
begin
//ss := DBGrid1.Columns.Items[i].FieldName;
ss := Fields.Fields[i].FieldName;
addMo( FullString(ss,' ',10, false)
+FullString(' | '+getFieldTypeSQL( Fields.Fields[i].ClassName )
+'【'+IntToStr( Fields.Fields[i].Size )+'】',' ',18,false)
+' | '+Fields.Fields[i].ClassName );
item := lv1.Items.Add;
item.Caption := ss;
item.SubItems.Add( getFieldTypeSQL( Fields.Fields[i].ClassName ) );
item.SubItems.Add( IntToStr( Fields.Fields[i].Size ) );
item.SubItems.Add( Fields.Fields[i].ClassName );
end;
end;
end;
1: begin//MySQL [ODBC]
with qryPubMySQL do
begin
Close;
SQL.Text := 'select * from '+cbxAtb.Hint;
DataSource1.DataSet := qryPubMySQL;
try
Open;
except
exit;
end;
labZD1.Caption := '字段: '+IntToStr( FieldCount );//字段数
labJL1.Caption := '记录: '+IntToStr( RecordCount );//记录数
lv1.Items.Clear;
for i := 0 to FieldCount-1 do
begin
//ss := DBGrid1.Columns.Items[i].FieldName;
ss := Fields.Fields[i].FieldName;
addMo( FullString(ss,' ',10, false)
+FullString(' | '+getFieldTypeMySQL( Fields.Fields[i].ClassName )
+'【'+IntToStr( Fields.Fields[i].Size )+'】',' ',18,false)
+' | '+Fields.Fields[i].ClassName );
item := lv1.Items.Add;
item.Caption := ss;
item.SubItems.Add( getFieldTypeMySQL( Fields.Fields[i].ClassName ) );
item.SubItems.Add( IntToStr( Fields.Fields[i].Size ) );
item.SubItems.Add( Fields.Fields[i].ClassName );
end;
end;
end;
2: begin//DB2 [BDE]
ss := cbxAtb.Text;
ss := StringReplace( ss,'【','',[rfReplaceAll]);
ss := StringReplace( ss,'】','.',[rfReplaceAll]);
mo.Text := 'select * from '+ss;
with qryPubDB2 do
begin
Close;
SQL.Text := mo.Text;
DataSource1.DataSet := qryPubDB2;
try
Open;
except
exit;
end;
labZD1.Caption := '字段: '+IntToStr( FieldCount );//字段数
labJL1.Caption := '记录: '+IntToStr( RecordCount );//记录数
lv1.Items.Clear;
for i := 0 to FieldCount-1 do
begin
//ss := DBGrid1.Columns.Items[i].FieldName;
ss := Fields.Fields[i].FieldName;
addMo( FullString(ss,' ',10, false)
+FullString(' | '+getFieldTypeDB2( Fields.Fields[i].ClassName )
+'【'+IntToStr( Fields.Fields[i].Size )+'】',' ',18,false)
+' | '+Fields.Fields[i].ClassName );
item := lv1.Items.Add;
item.Caption := ss;
item.SubItems.Add( getFieldTypeDB2( Fields.Fields[i].ClassName ) );
item.SubItems.Add( IntToStr( Fields.Fields[i].Size ) );
item.SubItems.Add( Fields.Fields[i].ClassName );
end;
end;
end;
3: begin//Access [ADO]
with adoQList1 do
begin
Close;
SQL.Text := 'select * from ['+cbxAtb.Hint+']';
DataSource1.DataSet := adoQList1;
try
Open;
except
exit;
end;
// i := RecordCount;
labZD1.Caption := '字段: '+IntToStr( FieldCount );//字段数
labJL1.Caption := '记录: '+IntToStr( RecordCount );//记录数
lv1.Items.Clear;
for i := 0 to FieldCount-1 do
begin
//ss := DBGrid1.Columns.Items[i].FieldName;
ss := Fields.Fields[i].FieldName;
addMo( FullString(ss,' ',10, false)
+FullString(' | '+getFieldTypeAccess( Fields.Fields[i].ClassName )
+'【'+IntToStr( Fields.Fields[i].Size )+'】',' ',18,false)
+' | '+Fields.Fields[i].ClassName );
item := lv1.Items.Add;
item.Caption := ss;
item.SubItems.Add( getFieldTypeAccess( Fields.Fields[i].ClassName ) );
item.SubItems.Add( IntToStr( Fields.Fields[i].Size ) );
item.SubItems.Add( Fields.Fields[i].ClassName );
end;
end;
end;
else Exit;
end;
end;
procedure TfrmPubImport.FormShow(Sender: TObject);
begin
inherited;
lv1.Items.Clear;
lv2.Items.Clear;
end;
procedure TfrmPubImport.CheckBox2Click(Sender: TObject);
var
i : Integer;
begin
inherited;
//统一列宽
if CheckBox2.Checked then
begin
for i := 0 to DBGrid1.Columns.Count-1 do
begin
DBGrid1.Columns.Items[i].Width := SpinEdit1.Value;//100;
end;
end;
end;
procedure TfrmPubImport.CheckBox1Click(Sender: TObject);
begin
inherited;
Panel6.Visible := CheckBox1.Checked;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -