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

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

?? ufrmcomparetb.pas

?? 數據庫通用工具
?? PAS
字號:
unit UfrmCompareTB;

interface

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

type
  TfrmCompareTB = class(TForm)
    Database1: TDatabase;
    Query1: TQuery;
    DataSource1: TDataSource;
    Database2: TDatabase;
    Query2: TQuery;
    DataSource2: TDataSource;
    Panel3: TPanel;
    Panel4: TPanel;
    Panel1: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    edita1: TEdit;
    edita2: TEdit;
    edita3: TEdit;
    edita4: TEdit;
    btnlink1: TButton;
    btnunlink1: TButton;
    Panel2: TPanel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    editb1: TEdit;
    editb4: TEdit;
    editb3: TEdit;
    editb2: TEdit;
    btnlink2: TButton;
    btnunlink2: TButton;
    ListBox1: TListBox;
    ListBox2: TListBox;
    pnlZS1: TPanel;
    pnlZS2: TPanel;
    ActionList1: TActionList;
    actEsc: TAction;
    mo: TMemo;
    lv: TListView;
    ImageList1: TImageList;
    Panel5: TPanel;
    BitBtn2: TBitBtn;
    BitBtn1: TBitBtn;
    lv1: TListView;
    lab: TLabel;
    BitBtn3: TBitBtn;
    procedure actEscExecute(Sender: TObject);
    procedure btnlink1Click(Sender: TObject);
    procedure Database1AfterConnect(Sender: TObject);
    procedure Database1AfterDisconnect(Sender: TObject);
    procedure Database2AfterConnect(Sender: TObject);
    procedure Database2AfterDisconnect(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure btnunlink1Click(Sender: TObject);
    procedure moAdd( str: string );
    procedure btnlink2Click(Sender: TObject);
    procedure btnunlink2Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure lvCustomDrawItem(Sender: TCustomListView; Item: TListItem;
      State: TCustomDrawState; var DefaultDraw: Boolean);
    procedure BitBtn2Click(Sender: TObject);
    procedure lv1CustomDrawItem(Sender: TCustomListView; Item: TListItem;
      State: TCustomDrawState; var DefaultDraw: Boolean);
    procedure BitBtn3Click(Sender: TObject);

  private
    { Private declarations }
    path : string;
    ini:TIniFile;
    item : TListItem;
  public
    { Public declarations }
  end;

var
  frmCompareTB: TfrmCompareTB;

implementation

{$R *.dfm}

procedure TfrmCompareTB.actEscExecute(Sender: TObject);
begin
  close;
end;

procedure TfrmCompareTB.moAdd( str: string );
begin
  mo.Lines.Add( str );
end;

procedure TfrmCompareTB.btnlink1Click(Sender: TObject);
begin
  Database1.Connected := false;
  Database1.Params.Clear();
  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 ;
  try
    Database1.Connected := true;
  except
    Application.MessageBox('數據庫鏈接錯誤,請重新設置!','提示',MB_OK+MB_ICONINFORMATION);
    exit;
  end;

  if Database1.Connected = true then
  begin
    Query1.Close;
    Query1.DatabaseName := Database1.DatabaseName ;
    
    {查存數據庫表對象的語句
    select * from sysobjects where xtype='U' order by xtype,name
    }
    
    ListBox1.Items.Clear;
    with Query1 do
    begin
      Close();
      SQL.Text := 'select * from sysobjects where xtype=''U'' order by xtype,name' ;
      try
        Open();
      except
        exit;
      end;

      while not Eof do
      begin
        ListBox1.Items.Add( FieldByName('name').AsString );
        Next;
      end;

    end;

    pnlZS1.Caption := '表數量:' + IntToStr( ListBox1.Items.Count );
    moAdd( edita2.Text+' | '+pnlZS1.Caption );
  end;

end;

procedure TfrmCompareTB.Database1AfterConnect(Sender: TObject);
begin
  btnlink1.Enabled := False;
  btnunlink1.Enabled := not btnlink1.Enabled;
end;

procedure TfrmCompareTB.Database1AfterDisconnect(Sender: TObject);
begin
  Query1.Close;
  btnlink1.Enabled := True;
  btnunlink1.Enabled := not btnlink1.Enabled;
end;

procedure TfrmCompareTB.Database2AfterConnect(Sender: TObject);
begin
  btnlink2.Enabled := False;
  btnunlink2.Enabled := not btnlink2.Enabled;
end;

procedure TfrmCompareTB.Database2AfterDisconnect(Sender: TObject);
begin
  Query2.Close;
  btnlink2.Enabled := True;
  btnunlink2.Enabled := not btnlink2.Enabled;
end;

procedure TfrmCompareTB.FormDestroy(Sender: TObject);
begin
  Query1.Close;
  Query2.Close;
  Database1.Connected := false;
  Database2.Connected := false;

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

procedure TfrmCompareTB.FormShow(Sender: TObject);
begin
  Database1.Connected := false;
  Database2.Connected := false;
  
  path := ExtractFilePath(application.ExeName);
  ini := TIniFile.Create(path+'config.may');
  edita1.Text := ini.ReadString('Compare', 'Server1',  '127.0.0.1');
  edita2.Text := ini.ReadString('Compare', 'Database1','master');
  edita3.Text := ini.ReadString('Compare', 'user1',    'sa');
  edita4.Text := ini.ReadString('Compare', 'pass1',    '');
  //--------------------------------------------------------------
  editb1.Text := ini.ReadString('Compare', 'Server2',  '127.0.0.1');
  editb2.Text := ini.ReadString('Compare', 'Database2','master');
  editb3.Text := ini.ReadString('Compare', 'user2',    'sa');
  editb4.Text := ini.ReadString('Compare', 'pass2',    '');
  ini.Free;
  //-------------------
  lv.Items.Clear;
  lv1.Items.Clear;  
end;

procedure TfrmCompareTB.btnunlink1Click(Sender: TObject);
begin
  Query1.Active := false;
  Database1.Connected := false;
  ListBox1.Items.Clear;
end;

procedure TfrmCompareTB.btnlink2Click(Sender: TObject);
begin
  Database2.Connected := false;
  Database2.Params.Clear();
  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 ;
  try
    Database2.Connected := true;
  except
    Application.MessageBox('數據庫鏈接錯誤,請重新設置!','提示',MB_OK+MB_ICONINFORMATION);
    exit;
  end;

  if Database2.Connected = true then
  begin
    Query2.Close;
    Query2.DatabaseName := Database2.DatabaseName ;
    
    {查存數據庫表對象的語句
    select * from sysobjects where xtype='U' order by xtype,name
    }
    
    ListBox2.Items.Clear;
    with Query2 do
    begin
      Close();
      SQL.Text := 'select * from sysobjects where xtype=''U'' order by xtype,name' ;
      try
        Open();
      except
        exit;
      end;

      while not Eof do
      begin
        ListBox2.Items.Add( FieldByName('name').AsString );
        Next;
      end;

    end;

    pnlZS2.Caption := '表數量:' + IntToStr( ListBox2.Items.Count );
    moAdd( editB2.Text+' | '+pnlZS2.Caption );
  end;
end;

procedure TfrmCompareTB.btnunlink2Click(Sender: TObject);
begin
  Query2.Active := false;
  Database2.Connected := false;
  ListBox2.Items.Clear;
end;

procedure TfrmCompareTB.BitBtn1Click(Sender: TObject);
var
  i,j,k : Integer;
  ss,sa,sb : string;
begin
  //比較表
  lv.Items.Clear;
  for i := 0 to ListBox1.Items.Count-1 do
  begin
    sa := ListBox1.Items.Strings[i];
    item := lv.Items.Add;
    item.Caption := sa;
    item.SubItems.Add('*');
    item.SubItems.Add(' ');
    for j := 0 to ListBox2.Items.Count-1 do
    begin
      sb := ListBox2.Items.Strings[j];
      if LowerCase(sb)=LowerCase(sa) then
      begin
        item.SubItems.Strings[1] := '*';
        Break;
      end;
    end;
  end;

  for i := 0 to ListBox2.Items.Count-1 do
  begin
    sa := ListBox2.Items.Strings[i];
    k := 0;
    for j := 0 to lv.Items.Count-1 do
    begin
      sb := lv.Items.Item[j].Caption;
      if LowerCase(sb)=LowerCase(sa) then
      begin
        k := 1;
        Break;
      end; 
    end;

    if k = 0 then
    begin
      item := lv.Items.Add;
      item.Caption := sa;
      item.SubItems.Add(' ');
      item.SubItems.Add('*');
    end;

  end; 

end;

procedure TfrmCompareTB.lvCustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
  {
  if item.Checked then
    Sender.Canvas.Font.Color := clRed
  else
    Sender.Canvas.Font.Color := clBlue;
  //}
  {
  case SubItem of
    1: Sender.Canvas.Font.Color := clBlack;
    2: Sender.Canvas.Font.Color := clBlue;
    3: Sender.Canvas.Font.Color := clRed;
  else Sender.Canvas.Font.Color := clBlack;
  end;
  //}
  if Trim( item.SubItems.Strings[0]) = '' then
  begin
    Sender.Canvas.Font.Color := clRed;
  end;

  if Trim( item.SubItems.Strings[1]) = '' then
  begin
    Sender.Canvas.Font.Color := clFuchsia;
  end;

end;

procedure TfrmCompareTB.BitBtn2Click(Sender: TObject);
var
  i,j,k,m,n : Integer;
  ss,sa,sb : string;
  item : TListItem;
begin
  lab.Caption := '0';
  if ListBox1.ItemIndex<0 then Exit;
  if ListBox2.ItemIndex<0 then Exit;

  lv1.Items.Clear;
  with Query1 do
  begin
    Close;                                                                   
    sql.Text := 'select top 1 * from '+ListBox1.Items.Strings[ ListBox1.ItemIndex ];

    try
      Open;
    except
      Exit;
    end;
    
    k := Query1.FieldCount;
    for i := 0 to k-1 do
    begin
      //ss := qryMessage.FieldDefs.Items[i].DisplayName;
      item := lv1.Items.Add;
      item.Caption := FieldDefs.Items[i].Name;
      item.SubItems.Add( FieldList.Fields[i].ClassName );
      item.SubItems.Add( IntToStr( FieldList.Fields[i].Size ) );
      item.SubItems.Add( '' );
      item.SubItems.Add( '' );
      item.SubItems.Add( '' );
    end;
  end;

  n := 0;
  with Query2 do
  begin
    Close;                                                                   
    sql.Text := 'select top 1 * from '+ListBox2.Items.Strings[ ListBox2.ItemIndex ];

    try
      Open;
    except
      Exit;
    end;

    k := Query2.FieldCount;
    for i := 0 to k-1 do
    begin
      ss := FieldDefs.Items[i].Name;
      sa := FieldList.Fields[i].ClassName;
      sb := IntToStr( FieldList.Fields[i].Size );
      m := 0;
      for j := 0 to lv1.Items.Count-1 do
      begin
        item := lv1.Items.Item[j];
        if SameText( item.Caption,ss ) then
        begin
          item.SubItems.Strings[2] := ss;
          item.SubItems.Strings[3] := sa;
          item.SubItems.Strings[4] := sb;
          m := 1;
          Break;
        end;
      end;

      if m=0 then
      begin
        item := lv1.Items.Add;
        item.Caption := '';
        item.SubItems.Add( '' );
        item.SubItems.Add( '' );
        item.SubItems.Add( ss );
        item.SubItems.Add( sa );
        item.SubItems.Add( sb );
        Inc(n);
      end;

    end;
  end;

  if n>0 then
    lab.Caption := '字段相差: '+ IntToStr(n);
    
end;

procedure TfrmCompareTB.lv1CustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
var
  t1,t2,z1,z2 : string;
begin
  t1 := item.SubItems.Strings[0];
  t2 := item.SubItems.Strings[3];
  z1 := item.SubItems.Strings[1];
  z2 := item.SubItems.Strings[4];
  
  if (not SameText( t1,t2 ))
    or (not SameText( z1,z2 )) then
  begin
    Sender.Canvas.Font.Color := clRed;
  end
  else
  begin
    Sender.Canvas.Font.Color := clBlack;
  end;

  //Sender.Canvas.Font.Color := clFuchsia;
  
end;

procedure TfrmCompareTB.BitBtn3Click(Sender: TObject);
begin
  if (ListBox1.ItemIndex+1) <= ListBox1.Items.Count-1 then
    ListBox1.ItemIndex := ListBox1.ItemIndex+1
  else
    ListBox1.ItemIndex := 0;

  if (ListBox2.ItemIndex+1) <= ListBox2.Items.Count-1 then
    ListBox2.ItemIndex := ListBox2.ItemIndex+1
  else
    ListBox2.ItemIndex := 0;

end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产在线精品免费| 日韩手机在线导航| 成人国产在线观看| 国产成人精品影视| 国产精品影视在线| 国产剧情一区二区三区| 国产精品一区二区三区99| 国产美女在线精品| 成人免费观看av| 99在线精品免费| 色狠狠一区二区三区香蕉| 色综合一区二区| 色综合天天综合网国产成人综合天| 国产成人精品免费在线| 成人aaaa免费全部观看| 色狠狠色狠狠综合| 欧美妇女性影城| 精品久久一区二区三区| 久久久久9999亚洲精品| 欧美国产精品一区二区| 中文字幕中文在线不卡住| 日韩一区日韩二区| 亚洲免费成人av| 五月天婷婷综合| 久久电影网站中文字幕 | 91色porny| 日本高清不卡在线观看| 欧美三级一区二区| 日韩一区二区三区视频| 国产亚洲欧美激情| 亚洲欧美色一区| 午夜精品福利一区二区三区蜜桃| 日本人妖一区二区| 成人综合婷婷国产精品久久蜜臀 | 国产日本一区二区| 亚洲精品免费看| 免费一级片91| 高清国产一区二区三区| 91福利国产精品| 日韩视频国产视频| 经典一区二区三区| 高清成人在线观看| 欧美日韩高清一区二区三区| 欧美mv日韩mv| 亚洲欧美一区二区不卡| 天天综合网 天天综合色| 国产精品一区二区果冻传媒| 色欧美88888久久久久久影院| 51午夜精品国产| 亚洲国产精品ⅴa在线观看| 一区二区三区资源| 精品一区二区在线播放| 91麻豆123| 久久久久亚洲蜜桃| 一区二区三区中文字幕| 老司机午夜精品| 日本道精品一区二区三区| 精品久久久久久久久久久久久久久| 国产精品久久久久久久岛一牛影视| 亚洲电影在线免费观看| 成人丝袜高跟foot| 日韩三级在线观看| 亚洲激情中文1区| 国产二区国产一区在线观看| 欧美福利一区二区| 亚洲美腿欧美偷拍| 国内精品免费**视频| 欧美日韩国产综合一区二区三区| 欧美国产成人在线| 激情文学综合丁香| 91精品在线免费| 亚洲人123区| 国产成人一区在线| 精品国产91九色蝌蚪| 亚洲第一福利一区| 91老司机福利 在线| 久久精品网站免费观看| 日韩精品午夜视频| 欧美优质美女网站| 亚洲欧洲av在线| 成人免费精品视频| 久久久亚洲精品石原莉奈| 日本不卡在线视频| 欧美日韩精品欧美日韩精品| 亚洲视频在线一区观看| 波多野结衣中文字幕一区| 精品成人a区在线观看| 日本不卡一区二区三区| 欧美日韩精品免费| 一区二区三区精品在线| 91麻豆视频网站| 亚洲男人天堂一区| 色综合天天综合| 1000部国产精品成人观看| 国产suv精品一区二区883| 国产人成亚洲第一网站在线播放| 国产原创一区二区| 久久精品人人做人人综合| 麻豆国产精品一区二区三区| 91精品国产综合久久精品图片| 亚洲影院免费观看| 欧美日韩一区二区在线视频| 亚洲高清免费视频| 欧美军同video69gay| 亚洲一区二区三区四区在线观看| 色婷婷久久综合| 夜夜亚洲天天久久| 欧美亚洲一区二区在线| 欧美亚洲愉拍一区二区| 亚洲一区电影777| 欧美色精品天天在线观看视频| 亚洲一区欧美一区| 欧美日韩美女一区二区| 天天色综合成人网| 欧美成人官网二区| 狠狠v欧美v日韩v亚洲ⅴ| 久久久综合视频| 99视频一区二区三区| 亚洲精品欧美二区三区中文字幕| 欧美性欧美巨大黑白大战| 亚洲成精国产精品女| 日韩一区二区视频在线观看| 极品少妇xxxx偷拍精品少妇| 国产欧美日韩视频在线观看| 91在线精品一区二区| 亚洲主播在线观看| 日韩一区二区在线播放| 久久66热偷产精品| 国产精品国产三级国产a| 91蝌蚪porny九色| 爽好久久久欧美精品| 精品国产凹凸成av人网站| 波多野结衣在线一区| 亚洲一区日韩精品中文字幕| 欧美精品成人一区二区三区四区| 精品一区二区三区在线播放| 国产欧美中文在线| 在线看日本不卡| 久久99久久久久久久久久久| 国产精品美女久久久久久久| 91国产免费看| 麻豆91在线观看| 国产精品久久久久久亚洲伦 | 亚洲美女在线一区| 91精品国产91综合久久蜜臀| 国产大陆亚洲精品国产| 一区二区三区波多野结衣在线观看| 欧美肥妇bbw| 国产999精品久久久久久绿帽| 亚洲激情男女视频| 2023国产一二三区日本精品2022| 99亚偷拍自图区亚洲| 毛片av一区二区三区| 中文字幕乱码久久午夜不卡| 在线免费观看一区| 国产精品一区二区视频| 亚洲gay无套男同| 中文字幕乱码亚洲精品一区 | 午夜不卡在线视频| 国产精品视频在线看| 91精品国产丝袜白色高跟鞋| 成人夜色视频网站在线观看| 免费在线成人网| 亚洲美女精品一区| 国产欧美日韩在线| 91精品黄色片免费大全| 97精品电影院| 国产一区二区三区蝌蚪| 亚洲3atv精品一区二区三区| 中文字幕成人在线观看| 91麻豆精品国产91久久久使用方法 | 中文字幕欧美国产| 日韩欧美第一区| 欧美三片在线视频观看| 成人av在线看| 国产精品综合在线视频| 天堂午夜影视日韩欧美一区二区| 国产精品毛片大码女人| 久久综合久久综合亚洲| 欧美日韩三级视频| 色综合欧美在线视频区| 国产精品综合一区二区三区| 青椒成人免费视频| 亚洲午夜三级在线| 亚洲欧美日韩人成在线播放| 国产午夜精品久久久久久免费视 | 国产精品女同一区二区三区| 日韩欧美国产不卡| 欧美日本乱大交xxxxx| 久久久午夜电影| 欧美哺乳videos| 91麻豆精品国产| 欧美伦理影视网| 精品视频一区二区不卡| 色综合天天综合网国产成人综合天| 成人一区二区三区视频| 国产精品18久久久久久vr| 极品瑜伽女神91| 蓝色福利精品导航| 久久草av在线|