亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
久久久国产午夜精品| 色婷婷亚洲精品| 国产精品久久久久天堂| 欧美色综合天天久久综合精品| 国产成人在线视频网站| 久久伊人蜜桃av一区二区| 日韩精品福利网| 日韩一级片在线观看| 日本三级亚洲精品| 亚洲综合成人网| 国产精品传媒在线| 久久伊人蜜桃av一区二区| 538在线一区二区精品国产| 91福利精品第一导航| 成人av网站大全| 欧美二区在线观看| 欧美一区二区免费视频| 欧美视频一二三区| 免费国产亚洲视频| 久久久五月婷婷| 色先锋aa成人| 热久久一区二区| 国产精品乱码一区二区三区软件| 国产性天天综合网| 成人av先锋影音| 日本美女一区二区三区| 国产婷婷色一区二区三区四区| 五月激情丁香一区二区三区| 精品第一国产综合精品aⅴ| gogo大胆日本视频一区| 日本亚洲一区二区| 国产精品无圣光一区二区| 欧美日韩在线直播| 国产成人在线色| 亚洲综合色噜噜狠狠| 久久综合精品国产一区二区三区| 美腿丝袜亚洲三区| 中文字幕一区二区三| 日韩视频国产视频| 在线视频一区二区三区| 国产精品一二二区| 亚洲不卡一区二区三区| 国产精品黄色在线观看| 欧美精品乱人伦久久久久久| 成人免费看片app下载| 偷拍一区二区三区四区| 国产精品乱人伦中文| 精品久久久久久综合日本欧美| 激情图片小说一区| 亚洲最大的成人av| 中文字幕国产一区| 精品日韩99亚洲| 欧美日韩国产一级二级| 99久久久久久99| 国产成人高清视频| 捆绑调教美女网站视频一区| 午夜精品爽啪视频| 亚洲中国最大av网站| 自拍偷拍国产精品| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 色噜噜久久综合| 极品少妇一区二区| 免费在线观看视频一区| 亚洲人成在线播放网站岛国| 国产欧美精品日韩区二区麻豆天美| 成人精品免费视频| 国产精品一级二级三级| 日本视频免费一区| 天天综合日日夜夜精品| 亚洲图片一区二区| 一区二区在线免费观看| 亚洲精品第一国产综合野| 国产精品久久午夜| 国产精品国产三级国产专播品爱网| 91视频在线看| 成人av综合一区| 99久久久国产精品免费蜜臀| eeuss鲁片一区二区三区| 从欧美一区二区三区| 成人禁用看黄a在线| 成人中文字幕电影| caoporn国产精品| 97久久精品人人澡人人爽| 91浏览器在线视频| 欧洲日韩一区二区三区| 欧美久久久久久久久久| 日韩一区二区在线免费观看| 欧美大片在线观看一区| 精品国产免费人成在线观看| 久久综合色综合88| 欧美国产日韩亚洲一区| 亚洲人精品午夜| 亚洲二区视频在线| 日韩精品1区2区3区| 日韩电影在线一区| 国产精品自拍毛片| 99久久国产免费看| 欧美日韩一区二区三区在线看| 毛片av中文字幕一区二区| 麻豆免费精品视频| 高清beeg欧美| 色偷偷成人一区二区三区91 | av一本久道久久综合久久鬼色| 亚洲一区在线观看免费| 亚洲成人午夜影院| 国模娜娜一区二区三区| aaa亚洲精品| 欧美精品九九99久久| 久久噜噜亚洲综合| 亚洲伦理在线免费看| 日韩电影一区二区三区四区| 九九热在线视频观看这里只有精品| 午夜精品久久久久久久久久| 日本va欧美va瓶| 国产白丝网站精品污在线入口| 美洲天堂一区二卡三卡四卡视频| 亚洲成人午夜影院| 国产乱理伦片在线观看夜一区| 日韩成人午夜电影| 韩国av一区二区| 欧美视频在线一区二区三区| 亚洲精品一区二区三区影院| 一区二区三区日韩欧美| 精品在线免费观看| 99国产精品视频免费观看| 日韩视频在线你懂得| 亚洲天堂精品视频| 久久国产三级精品| 色婷婷亚洲精品| 久久久久久久综合色一本| 午夜日韩在线电影| 99久久久国产精品| 久久久久久亚洲综合| 日本中文字幕一区| 91在线精品一区二区三区| 精品国产电影一区二区| 一区二区三区小说| 成人性生交大片免费看中文| 日韩午夜精品电影| 亚洲精品videosex极品| 国产成人自拍在线| 日韩欧美一区二区免费| 天天操天天综合网| 一本一道久久a久久精品| 国产亚洲精品bt天堂精选| 免费在线视频一区| 欧美日本韩国一区| 亚洲影视在线播放| 色婷婷综合久久| 日韩一区在线播放| 国产伦精品一区二区三区视频青涩| 懂色av一区二区夜夜嗨| 日韩欧美一区中文| 天天色 色综合| 欧美性大战久久| 一区二区三区91| 日本久久电影网| 亚洲精品日产精品乱码不卡| 成人激情综合网站| 中文字幕在线不卡国产视频| 风间由美一区二区三区在线观看| 色综合久久66| 一区二区三区欧美日韩| 99riav一区二区三区| 国产精品第13页| 99vv1com这只有精品| 亚洲免费观看高清完整版在线| 婷婷开心激情综合| 欧美午夜理伦三级在线观看| 亚洲精品国产a| 欧美色图一区二区三区| 亚洲午夜视频在线观看| 欧美日韩国产首页在线观看| 亚洲成年人网站在线观看| 欧美日韩在线精品一区二区三区激情| 2020国产成人综合网| 国产精品性做久久久久久| 中文字幕精品一区二区三区精品| 亚洲成人自拍网| 91麻豆精品国产91久久久久| 亚洲高清不卡在线| 欧美日韩大陆一区二区| 日韩vs国产vs欧美| 欧美成人福利视频| 国产精品一级二级三级| 日韩理论片在线| 精品视频在线看| 久久99精品久久久久久国产越南| 欧美日韩综合在线| 亚洲18色成人| 精品久久久久久久久久久久久久久| 《视频一区视频二区| 在线视频欧美精品| 日韩av网站免费在线| 久久综合资源网| 日本韩国一区二区三区| 婷婷综合久久一区二区三区| 国产午夜亚洲精品午夜鲁丝片| 天使萌一区二区三区免费观看| 色综合天天在线|