亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ufrmimportnew.pas

?? 數據庫通用工具
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
unit UfrmImportNew;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, DBTables, StdCtrls, Grids, DBGrids, ExtCtrls, Buttons,
  ComCtrls, ImgList, IniFiles;

type
  TfrmImportNew = class(TForm)
    Database1: TDatabase;
    Query1: TQuery;
    DataSource1: TDataSource;
    Database2: TDatabase;
    Query2: TQuery;
    DataSource2: TDataSource;
    Query3: TQuery;
    Panel1: TPanel;
    Panel4: TPanel;
    labA: TLabel;
    labB: TLabel;
    lv: TListView;
    btnadd: TButton;
    btndel: TButton;
    btnclear: TButton;
    btnout: TButton;
    BitBtn1: TBitBtn;
    Panel5: TPanel;
    DBGrid1: TDBGrid;
    Panel2: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    edita1: TEdit;
    edita2: TEdit;
    edita3: TEdit;
    edita4: TEdit;
    btnlink1: TButton;
    btnunlink1: TButton;
    edita5: TComboBox;
    Panel6: TPanel;
    Panel3: TPanel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    editb1: TEdit;
    editb4: TEdit;
    editb3: TEdit;
    editb2: TEdit;
    btnlink2: TButton;
    btnunlink2: TButton;
    editb5: TComboBox;
    DBGrid2: TDBGrid;
    lv1: TListView;
    lv2: TListView;
    ImageList1: TImageList;
    Label12: TLabel;
    Label13: TLabel;
    mo: TMemo;
    bbtRun: TBitBtn;
    StatusBar1: TStatusBar;
    labRa: TLabel;
    labRb: TLabel;
    ProgressBar1: TProgressBar;
    procedure btnoutClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure edita1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure btnlink1Click(Sender: TObject);
    procedure btnunlink1Click(Sender: TObject);
    procedure Database1AfterConnect(Sender: TObject);
    procedure Database1AfterDisconnect(Sender: TObject);
    procedure btnlink2Click(Sender: TObject);
    procedure btnunlink2Click(Sender: TObject);
    procedure Database2AfterConnect(Sender: TObject);
    procedure Database2AfterDisconnect(Sender: TObject);
    procedure edita5Change(Sender: TObject);
    procedure lv1CustomDrawSubItem(Sender: TCustomListView;
      Item: TListItem; SubItem: Integer; State: TCustomDrawState;
      var DefaultDraw: Boolean);
    procedure lv1CustomDrawItem(Sender: TCustomListView; Item: TListItem;
      State: TCustomDrawState; var DefaultDraw: Boolean);
    procedure lv2CustomDrawSubItem(Sender: TCustomListView;
      Item: TListItem; SubItem: Integer; State: TCustomDrawState;
      var DefaultDraw: Boolean);
    procedure lv1Resize(Sender: TObject);
    procedure lv2Resize(Sender: TObject);
    procedure editb5Change(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure btnaddClick(Sender: TObject);
    procedure addMo( ss : string );
    procedure btnclearClick(Sender: TObject);
    procedure btndelClick(Sender: TObject);
    procedure bbtRunClick(Sender: TObject);
    procedure lvCustomDrawSubItem(Sender: TCustomListView; Item: TListItem;
      SubItem: Integer; State: TCustomDrawState; var DefaultDraw: Boolean);
    procedure lvResize(Sender: TObject);
    function setFieldToParam( stype : string; tp : TParam; tf : TField ) : Integer;
    procedure lvKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure moKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormCreate(Sender: TObject);
    procedure StatusBar1DrawPanel(StatusBar: TStatusBar;
      Panel: TStatusPanel; const Rect: TRect);
    
  private
    { Private declarations }
    path : string;
    ini : TIniFile;
    item : TListItem;
    bDoing : Boolean;
  public
    { Public declarations }
  end;

var
  frmImportNew: TfrmImportNew;

implementation

{$R *.dfm}

procedure TfrmImportNew.addMo( ss : string );
begin
  mo.Lines.Add( ss );
end;

procedure TfrmImportNew.btnoutClick(Sender: TObject);
begin
  Close;
end;

procedure TfrmImportNew.FormShow(Sender: TObject);
begin
  lv1.Items.Clear;
  lv2.Items.Clear;
  lv.Items.Clear;

  Database1.Connected := false;
  Database2.Connected := false;
  
  path := ExtractFilePath(application.ExeName);
  ini := TIniFile.Create(path+'config.may');
  edita1.Text := ini.ReadString('ImportNew', 'Server1',  '127.0.0.1');
  edita2.Text := ini.ReadString('ImportNew', 'Database1','master');
  edita3.Text := ini.ReadString('ImportNew', 'user1',    'sa');
  edita4.Text := ini.ReadString('ImportNew', 'pass1',    'sa');
  //edita5.Text := ini.ReadString('ImportNew', 'table1',   'operator');
  //--------------------------------------------------------------
  editb1.Text := ini.ReadString('ImportNew', 'Server2',  '127.0.0.1');
  editb2.Text := ini.ReadString('ImportNew', 'Database2','master');
  editb3.Text := ini.ReadString('ImportNew', 'user2',    'sa');
  editb4.Text := ini.ReadString('ImportNew', 'pass2',    'sa');
  //editb5.Text := ini.ReadString('ImportNew', 'table2',   'operator');
  ini.Free;
  
end;

procedure TfrmImportNew.FormDestroy(Sender: TObject);
begin
  Database1.Connected := false;
  Database2.Connected := false;

  path := ExtractFilePath(application.ExeName);
  ini := TIniFile.Create(path+'config.may');
  ini.WriteString('ImportNew', 'Server1',  edita1.Text );
  ini.WriteString('ImportNew', 'Database1',edita2.Text );
  ini.WriteString('ImportNew', 'user1',    edita3.Text );
  ini.WriteString('ImportNew', 'pass1',    edita4.Text );
  //ini.WriteString('ImportNew', 'table1',   edita5.Text );
  //--------------------------------------------------
  ini.WriteString('ImportNew', 'Server2',  editb1.Text );
  ini.WriteString('ImportNew', 'Database2',editb2.Text );
  ini.WriteString('ImportNew', 'user2',    editb3.Text );
  ini.WriteString('ImportNew', 'pass2',    editb4.Text );
  //ini.WriteString('ImportNew', 'table2',   editb5.Text );
  ini.Free;
end;

procedure TfrmImportNew.edita1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = vk_return then
    sendMessage(handle,wm_nextdlgctl,0,0);
end;

procedure TfrmImportNew.btnlink1Click(Sender: TObject);
var
  i,j: integer;
  ss,sb : string;
  slt:TStringList;
begin
  Database1.Connected := false;
  Database1.Params.Clear();
  //Database1.DatabaseName :=  edita2.Text ;
  Database1.DatabaseName :=  'A'+edita2.Text ;
  Database1.Params.Values['DATABASE NAME']:= edita2.Text ;
  Database1.Params.Values['SERVER NAME']  := edita1.Text ;
  Database1.Params.Values['USER NAME']    := edita3.Text ;
  Database1.Params.Values['PASSWORD']     := edita4.Text ;
  Database1.Params.Values['BLOB SIZE']    := IntToStr( 1024*8 );
  
  try
      Database1.Connected := true;
  except
      Application.MessageBox('數據庫鏈接錯誤,請重新設置!','提示',MB_OK+MB_ICONINFORMATION);
      exit;
  end;

  if Database1.Connected = true then
  begin
    slt := TStringList.Create();
    Database1.GetTableNames(slt,false);
    
    btnlink1.Enabled := false;
    Query1.DatabaseName := Database1.DatabaseName ;

    //排序
    for i := 0 to slt.Count-2 do
    begin
      ss := slt.Strings[i];
      for j := i to slt.Count-1 do
      begin
        sb := slt.Strings[j];
        if LowerCase(sb) < LowerCase(ss) then
        begin
          ss := slt.Strings[j];
          slt.Strings[j] := slt.Strings[i];
          slt.Strings[i] := ss;
        end;

      end;

    end;
    
    edita5.Items.Clear;
    for i := 0 to slt.Count-1 do
    begin
      ss := slt.Strings[i];
      ss := copy(ss,5,length(ss)-4);
      edita5.Items.Add( ss );
    end;

    if edita5.Items.Count>0 then edita5.ItemIndex := 0;
    slt.Free;
   
    lv1.Items.Clear();
    lv.Items.Clear();
  end;

end;

procedure TfrmImportNew.btnunlink1Click(Sender: TObject);
begin
  Query1.Close();
  lv1.Items.Clear;
  Query1.Active := false;
  Database1.Connected := false;
  btnlink1.Enabled := true;
  lv.Items.Clear();
end;

procedure TfrmImportNew.Database1AfterConnect(Sender: TObject);
begin
  StatusBar1.Panels.Items[0].Text := ' '+edita1.Text + ' < '+edita2.Text+' > 連接成功';
end;

procedure TfrmImportNew.Database1AfterDisconnect(Sender: TObject);
begin
  StatusBar1.Panels.Items[0].Text := ' '+edita1.Text + ' < '+edita2.Text+' > 斷開連接!';
end;

procedure TfrmImportNew.btnlink2Click(Sender: TObject);
var
  i,a,j: integer;
  ss,sb : string;
  slt:TStringList;
begin

  Database2.Connected := false;
  Database2.Params.Clear();
  //Database2.DatabaseName :=  editb2.Text ;
  Database2.DatabaseName :=  'B'+editb2.Text ;
  Database2.Params.Values['DATABASE NAME']:= editb2.Text ;
  Database2.Params.Values['SERVER NAME']  := editb1.Text ;
  Database2.Params.Values['USER NAME']    := editb3.Text ;
  Database2.Params.Values['PASSWORD']     := editb4.Text ;
  Database2.Params.Values['BLOB SIZE']    := IntToStr( 1024*8 );

  try
      Database2.Connected := true;
  except
      Application.MessageBox('數據庫鏈接錯誤,請重新設置!','提示',MB_OK+MB_ICONINFORMATION);
      exit;
  end;

  if Database2.Connected = true then
  begin
    slt := TStringList.Create();
    Database2.GetTableNames(slt,false);
    
    btnlink2.Enabled := false;
    Query3.DatabaseName := Database1.DatabaseName ;
    Query2.DatabaseName := Database2.DatabaseName ;

    //排序
    for i := 0 to slt.Count-2 do
    begin
      ss := slt.Strings[i];
      for j := i to slt.Count-1 do
      begin
        sb := slt.Strings[j];
        if LowerCase(sb) < LowerCase(ss) then
        begin
          ss := slt.Strings[j];
          slt.Strings[j] := slt.Strings[i];
          slt.Strings[i] := ss;
        end;

      end;

    end;
    
    editb5.Items.Clear;
    for i := 0 to slt.Count-1 do
    begin
      ss := slt.Strings[i];
      ss := copy(ss,5,length(ss)-4);
      editb5.Items.Add( ss );
    end;
    
    if editb5.Items.Count>0 then editb5.ItemIndex := 0;
    slt.Free;

    lv2.Items.Clear();
    lv.Items.Clear();
    //=============================
  end;

end;

procedure TfrmImportNew.btnunlink2Click(Sender: TObject);
begin
  Query2.Close();
  lv2.Items.Clear;
  Query2.Active := false;
  Database2.Connected := false;
  btnlink2.Enabled := true;
  lv.Items.Clear();
end;

procedure TfrmImportNew.Database2AfterConnect(Sender: TObject);
begin
  StatusBar1.Panels.Items[1].Text := ' '+editb1.Text + ' < '+editb2.Text+' > 連接成功';
end;

procedure TfrmImportNew.Database2AfterDisconnect(Sender: TObject);
begin
  StatusBar1.Panels.Items[1].Text := ' '+editb1.Text + ' < '+editb2.Text+' > 斷開連接!';
end;

function getFieldType( sDPName : string ) : string;
begin
  sDPName := Trim(sDPName);
  Result := '';
  if sDPName='TIntegerField' then
  begin
    Result := 'int';
  end
  else if sDPName='TStringField' then
  begin
    Result := 'varchar';
  end
  else if sDPName='TFloatField' then
  begin
    Result := 'float';
  end
  else if sDPName='TCurrencyField' then
  begin
    Result := 'money';
  end
  else if sDPName='TDateTimeField' then
  begin
    Result := 'datetime';
  end
  else if sDPName='TBooleanField' then
  begin
    Result := 'bit';
  end
  else if sDPName='TBlobField' then
  begin
    Result := 'image';
  end
  else if sDPName='TAutoIncField' then
  begin
    Result := 'int(自增)';
  end
  else if sDPName='TSmallintField' then
  begin
    Result := 'smallint';
  end
  else if sDPName='TMemoField' then
  begin
    Result := 'text';
  end
  else
  begin
    Result := '--';
  end;

end;

procedure TfrmImportNew.edita5Change(Sender: TObject);
var
  i,a: integer;
  ss : string;
begin
  
  Query1.Close();
  Query1.SQL.Text := 'select * from '+ edita5.Text ;
  try
    Query1.Open();
  except
    addMo('執行語句出錯: '+Query1.SQL.Text);
    exit;
  end;

  a := DBGrid1.FieldCount;
  labA.Caption := IntToStr(a);
  i := Query1.RecordCount;
  
  if i>=0 then
  begin
    labRa.Tag := Query1.RecordCount;
    labRa.Caption := '記錄數 '+IntToStr( Query1.RecordCount );
  end
  else//<0
  begin
    //語句手工統計
    with Query1 do
    begin

      Close();
      SQL.Text := 'select count(*) as iCount from '+ edita5.Text ;
      
      try
        Open();
      except
        addMo('執行語句出錯: '+SQL.Text);
        exit;
      end;

      if not IsEmpty then
      begin
        labRa.Tag := FieldByName('iCount').AsInteger;
        labRa.Caption := '記錄數 '+FieldByName('iCount').AsString;
      end;
      //-----------------------
      Close();
      SQL.Text := 'select * from '+ edita5.Text ;
      
      try
        Open();
      except
        addMo('執行語句出錯: '+SQL.Text);
        exit;
      end;
    end;

  end;

  addMo( '------------------------------' );
  addMo( '源庫: '+edita2.Text );
  addMo( '源表: '+edita5  .Text );
  addMo( '源表: 字段數 '+IntToStr(a) );
  //addMo( '源表: 記錄數 '+IntToStr( Query1.RecordCount ) );
  addMo( '源表: 記錄數 '+IntToStr(labRa.Tag) );

  lv1.Items.Clear;
  
  for i := 0 to a-1 do
  begin
    ss := DBGrid1.Columns.Items[i].FieldName;
    item := lv1.Items.Add;
    item.Caption := ss;
    item.SubItems.Add( getFieldType( DBGrid1.Columns.Items[i].Field.ClassName ) );
    item.SubItems.Add( IntToStr( DBGrid1.Columns.Items[i].Field.Size ) );
  end;
  
  if lv1.Items.Count > 0 then
  begin
    lv1.Items.Item[0].Selected := true;
  end;

end;

procedure TfrmImportNew.editb5Change(Sender: TObject);
var
  i,a: integer;
  ss : string;
begin
  Query2.Close();

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
9i在线看片成人免费| 亚洲色图欧美偷拍| 韩国午夜理伦三级不卡影院| 欧美福利电影网| 韩国欧美一区二区| 久久影院电视剧免费观看| 国产麻豆91精品| 国产人成一区二区三区影院| www.亚洲色图| 亚洲一区二区三区国产| 91精品国模一区二区三区| 青青草97国产精品免费观看无弹窗版 | 最新热久久免费视频| 色狠狠一区二区三区香蕉| 亚洲午夜久久久久久久久电影网| 欧美精品18+| 国产精品综合网| 亚洲老司机在线| 欧美久久久影院| 国产成人精品三级| 亚洲自拍欧美精品| 精品日产卡一卡二卡麻豆| 成人18精品视频| 日本美女一区二区三区视频| 2020日本不卡一区二区视频| 99久久综合狠狠综合久久| 婷婷久久综合九色国产成人| 久久久久久免费网| 欧美性大战xxxxx久久久| 久久电影国产免费久久电影| 亚洲欧美一区二区久久| 日韩一区二区精品在线观看| 99精品视频免费在线观看| 日本成人在线网站| 综合久久一区二区三区| 日韩欧美国产一区二区在线播放| bt欧美亚洲午夜电影天堂| 日本一不卡视频| 亚洲美女视频在线| 国产日韩亚洲欧美综合| 欧美日本韩国一区| 色综合中文字幕国产| 美女看a上一区| 亚洲少妇中出一区| 国产亚洲欧美在线| 91精品国产品国语在线不卡| 粉嫩在线一区二区三区视频| 美女精品自拍一二三四| 亚洲大片免费看| 亚洲精品欧美二区三区中文字幕| 国产午夜精品久久久久久免费视| 91精品国产黑色紧身裤美女| 色欧美日韩亚洲| 国产69精品久久99不卡| 韩国v欧美v日本v亚洲v| 日韩黄色片在线观看| 亚洲一区在线电影| 国产精品久久久久aaaa樱花| 日韩女同互慰一区二区| 7777精品伊人久久久大香线蕉 | 欧美aaaaa成人免费观看视频| 国产精品乱码一区二三区小蝌蚪| 精品国产污污免费网站入口| 欧美精品色综合| 欧美色老头old∨ideo| 成人黄色小视频| 成人性视频网站| 成人小视频在线观看| 奇米影视一区二区三区小说| 亚洲韩国一区二区三区| 亚洲精品视频观看| 亚洲品质自拍视频网站| 亚洲另类色综合网站| 一区二区久久久久久| 一区二区三区久久| 亚洲一区日韩精品中文字幕| 一区二区免费视频| 亚洲国产精品久久不卡毛片| 亚洲一级二级三级| 天天操天天综合网| 蜜桃精品视频在线| 国产乱码精品一区二区三区五月婷| 精品一区二区三区欧美| 国产精品一区一区三区| 大胆亚洲人体视频| 97久久超碰国产精品| 色先锋aa成人| 在线不卡免费欧美| 精品伦理精品一区| 国产精品久久夜| 亚洲综合丝袜美腿| 免费看日韩a级影片| 国产精品夜夜嗨| www.日韩精品| 欧美日本在线观看| 日韩欧美你懂的| 欧美国产欧美亚州国产日韩mv天天看完整| 日本一区二区不卡视频| 亚洲激情图片一区| 午夜精品一区二区三区三上悠亚| 免费成人深夜小野草| 国产制服丝袜一区| 色综合久久99| 欧美日韩精品欧美日韩精品| 欧美一区日韩一区| 国产日产精品一区| 亚洲最大成人网4388xx| 亚洲444eee在线观看| 久久aⅴ国产欧美74aaa| 91麻豆国产在线观看| 6080国产精品一区二区| 中文字幕乱码一区二区免费| 夜夜嗨av一区二区三区网页| 日韩高清一级片| 国产aⅴ综合色| 欧美三级日本三级少妇99| 26uuu久久天堂性欧美| 亚洲伦理在线精品| 亚洲va国产天堂va久久en| 激情图片小说一区| 色欧美日韩亚洲| 欧美成人免费网站| 国产精品日产欧美久久久久| 亚洲综合色成人| 经典三级视频一区| 欧美三级日本三级少妇99| 中文字幕巨乱亚洲| 久久国产日韩欧美精品| 色播五月激情综合网| 国产午夜亚洲精品午夜鲁丝片| 有码一区二区三区| 国产激情视频一区二区在线观看| 欧洲人成人精品| 中文字幕中文字幕中文字幕亚洲无线 | 波多野结衣亚洲| 日韩一区二区三区免费看| 亚洲欧美国产高清| 国产成人激情av| 日韩一区二区三区四区| 亚洲自拍偷拍图区| 成人黄色在线网站| 国产网站一区二区| 黄色资源网久久资源365| 欧美日韩国产经典色站一区二区三区 | 99久久99久久综合| 久久综合九色欧美综合狠狠| 日韩一区精品视频| 在线视频一区二区三区| 中文av一区二区| 国产精品综合一区二区三区| 欧美一区二区福利在线| 亚洲成人久久影院| 欧美日韩国产综合草草| 亚洲免费色视频| 91亚洲午夜精品久久久久久| 国产色综合久久| 国产呦精品一区二区三区网站| 日韩欧美一二三| 免费人成网站在线观看欧美高清| 91精品欧美久久久久久动漫 | 偷拍一区二区三区四区| 色综合久久综合| 亚洲精品视频在线观看网站| av不卡在线播放| 亚洲欧美另类久久久精品2019| 成人午夜大片免费观看| 国产精品天天摸av网| 国产成人精品免费在线| 国产精品私人自拍| 成人国产在线观看| 国产精品天天看| 91网站最新网址| 亚洲影院在线观看| 欧美日韩成人激情| 美女视频黄久久| 26uuuu精品一区二区| 国产ts人妖一区二区| 中文在线一区二区| 91久久香蕉国产日韩欧美9色| 亚洲毛片av在线| 欧美人牲a欧美精品| 日本不卡1234视频| 久久婷婷综合激情| 国产99久久久久| 亚洲伊人色欲综合网| 欧美精品日韩精品| 狠狠网亚洲精品| 国产片一区二区| 日本韩国一区二区三区视频| 亚洲一区二区三区视频在线 | 粉嫩av一区二区三区在线播放| 久久精品亚洲麻豆av一区二区| 99久久久精品| 亚洲一区二区三区视频在线 | 日韩av二区在线播放| 精品国产乱码久久久久久夜甘婷婷 | 亚洲综合久久久| 欧美va亚洲va在线观看蝴蝶网| 国产成人免费9x9x人网站视频| 一区二区三区国产豹纹内裤在线|