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

📄 ufrmpubimport.pas

📁 数据库通用工具
💻 PAS
📖 第 1 页 / 共 2 页
字号:
          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 + -