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

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

?? main.pas

?? 在SQLSERVER數據庫查找任一表中的任意數據
?? PAS
字號:
Unit Main;

Interface

Uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, AutoGrpBox, Buttons, ExtCtrls, AutoPnl,
  CheckLst, DB, ADODB, ComCtrls, Clipbrd, cxControls, cxContainer, cxEdit,
  cxTextEdit;

Type
  TFrmMain = Class(TForm)
    Grp1: TAutoGrpBox;
    Label1: TLabel;
    SetBtn: TSpeedButton;
    Grp2: TAutoGrpBox;
    Label2: TLabel;
    SeeBtn: TSpeedButton;
    LinkBtn: TSpeedButton;
    Pnl1: TAutoPanel;
    MsgPnl: TAutoPanel;
    ListGrp: TAutoGrpBox;
    ChkTblList: TCheckListBox;
    AutoGrpBox4: TAutoGrpBox;
    Memo1: TMemo;
    ADOC: TADOConnection;
    Lbl3: TLabel;
    Msg3: TLabel;
    Lbl1: TLabel;
    Lbl2: TLabel;
    Bar1: TProgressBar;
    Bar2: TProgressBar;
    Bevel1: TBevel;
    StopBtn: TSpeedButton;
    ListBox1: TListBox;
    SBar1: TStatusBar;
    LinkBox: TcxTextEdit;
    TxtBox: TcxTextEdit;
    Procedure LinkBtnClick(Sender: TObject);
    Procedure ADOCBeforeConnect(Sender: TObject);
    Procedure ADOCAfterConnect(Sender: TObject);
    Procedure ADOCAfterDisconnect(Sender: TObject);
    Procedure ADOCConnectComplete(Connection: TADOConnection;
      Const Error: Error; Var EventStatus: TEventStatus);
    Procedure FormShow(Sender: TObject);
    Procedure FormCloseQuery(Sender: TObject; Var CanClose: Boolean);
    Procedure SeeBtnClick(Sender: TObject);
    procedure SetBtnClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure StopBtnClick(Sender: TObject);
    procedure ListBox1DblClick(Sender: TObject);
    procedure TxtBoxPropertiesValidate(Sender: TObject;
      var DisplayValue: Variant; var ErrorText: TCaption;
      var Error: Boolean);
    procedure TxtBoxPropertiesChange(Sender: TObject);
  Private
    { Private declarations }
    FQry, QryF: TAdoQuery;
    isExiting: Boolean;
    TblCnt: Integer;
    ConnStr: String;
    MustStop:Boolean;

    Procedure FreshTblList; //刷新數據庫中用戶表列表

    Procedure ShowMsgV(Typ {類型}: Integer); //顯示MsgPnl
    Procedure ShowMsg(Msg: String = ''; Pos1: Integer = -1; Pos2: Integer = -1);
    Procedure HideMsg; //隱藏MsgPnl

    Function GetConnStr: Boolean; //獲取連接設置
    Procedure SplitStr(S: String);

    Procedure FindText(Txt: String);
    Function ChkTbl(Tbl, Txt: String): Boolean;
  Public
    { Public declarations }
  End;

Var
  FrmMain: TFrmMain;

Implementation

Uses Set_Color, MyPublic, DataView;

{$R *.dfm}

Function TFrmMain.GetConnStr: Boolean; //獲取連接設置
Var
  Cs: String;
  Ts: TStrings;
Begin
  Cs := 'Persist Security Info=True;';
  Cs := Cs + 'Provider=' + 'SQLOLEDB.1' + ';'; //數據庫種類
  Cs := Cs + 'Password=;'; //密碼
  Cs := Cs + 'User ID=SA;'; //操作員
  Cs := Cs + 'Initial Catalog=;'; //數據庫名
  Cs := Cs + 'Data Source='; //服務器名稱
  If ConnStr = '' Then ConnStr := Cs;
  Cs := ConnStr;
  ConnStr := trim(PromptDataSource(Handle, CS));
  If Trim(UpperCase(ConnStr)) = Trim(UpperCase(Cs)) Then Begin
    Result := False;
    LinkBtn.Enabled := True;
    sBar1.Panels[6].Text := '沒有連接配置!';
  End
  Else Begin
    Result := True;
    sBar1.Panels[6].Text := '您已經改變了連接設置...';
    Cs := ConnStr;
    //    If GetConnKeyValue(Connstr,'Password')<>'' Then
    Cs := EnCode(ConnStr);
    Ts := TStringList.Create;
    Ts.Text := Cs;
    Ts.SaveToFile('Connect.Dll');
    Ts.Free;
  End;
  SplitStr(ConnStr);
End;

Procedure TFrmMain.SplitStr(S: String);
Var
  SvName, DBMan, Pass, DBName: String; //DbCate,

  Function GetKey(Sou: String; Sub: String): String;
  Var
    i, At: Integer;
    bg: Boolean;
    Us, Key: String;
  Begin
    Us := UpperCase(Sou);
    Bg := False;
    At := Pos(UpperCase(Sub), Us);
    Key := '';
    If at > 0 Then Begin
      For i := At To Length(sou) Do Begin
        If Sou[i] = '=' Then Begin
          Bg := True;
          Continue;
        End;
        If Sou[i] = ';' Then Break;
        If Bg Then Key := Key + Sou[i];
      End;
      Key := Trim(Key);
    End;
    Result := Key;
  End;
Begin
  If Trim(s) = '' Then Exit;
  SvName := GetKey(s, 'Data Source'); //檢查服務器名稱
  //  DbCate:=GetKey(s,'Provider');           //檢查數據種類
  DbMan := GetKey(s, 'User ID'); //檢查管理員名稱
  Pass := GetKey(s, 'Password'); //檢查數據庫密碼
  DbName := GetKey(s, 'Initial Catalog'); //檢查數據庫名稱
  sBar1.Panels[1].Text := SvName;
  sBar1.Panels[2].Text := DBMan;
  sBar1.Panels[4].Text := DBName;
  sBar1.Panels[3].Text := '******';

End;


Procedure TFrmMain.ShowMsgV(Typ {類型}: Integer); //顯示MsgPnl
Begin
  MsgPnl.Visible := True;
  MsgPnl.BringToFront;
  Lbl1.Visible := True;
  Bar1.Visible := True;
  Lbl2.Visible := Typ > 1;
  Bar2.Visible := Typ > 1;
  MsgPnl.Left := (Width - MsgPnl.Width) Div 2;
  MsgPnl.Top := (Height - MsgPnl.Height) Div 2;
  Application.ProcessMessages;
End;

Procedure TFrmMain.ShowMsg(Msg: String = ''; Pos1: Integer = -1; Pos2: Integer = -1);
Begin
  If Msg <> '' Then
    Msg3.Caption := Msg;
  If Pos1 <> -1 Then
    Bar1.Position := Pos1;
  If Pos2 <> -1 Then
    Bar2.Position := Pos2;
  Application.ProcessMessages;
End;

Procedure TFrmMain.HideMsg; //隱藏MsgPnl
Begin
  MsgPnl.Visible := False;
  MsgPnl.SendToBack;
  Application.ProcessMessages;
End;

Procedure TFrmMain.FreshTblList; //刷新數據庫中用戶表列表
Var
  Qry: TAdoQuery;
  sName: String;
Begin
  ShowMsgV(1); //顯示MsgPnl
  Bar1.Position := 0;
  Application.ProcessMessages;
  SleepEx(10, False);
  Qry := TAdoQuery.Create(Self);
  ChkTblList.Items.BeginUpdate;
  TblCnt := 0;
  Try
    ChkTblList.Items.Clear;
    With Qry Do Begin
      Connection := ADOC;
      SQL.Text := 'select name from dbo.sysobjects';
      SQL.Add('where OBJECTPROPERTY(id, N''IsUserTable'') = 1');
      SQL.Add('order by name');
      Open;
      Bar1.Max := RecordCount;
      First;
      While Not Eof Do Begin
        Inc(TblCnt);
        Bar1.Position := TblCnt;
        Application.ProcessMessages;
        sName := Trim(FieldByName('Name').AsString);
        ChkTblList.Items.Add(sName);
        Next;
      End;
      Close;
    End;
  Finally
    HideMsg; //隱藏MsgPnl
    ListGrp.Caption := '數據表列表 (' + InttoStr(Tblcnt) + ')';
    ChkTblList.Items.EndUpdate;
    Qry.Free;
  End;

End;

Procedure TFrmMain.LinkBtnClick(Sender: TObject);
Begin
  Adoc.Open;
  FreshTblList; //刷新數據庫中用戶表列表
End;

Procedure TFrmMain.ADOCBeforeConnect(Sender: TObject);
Begin
  Msg3.Caption := '正在連接數據庫,請等待...';
  Application.ProcessMessages;
End;

Procedure TFrmMain.ADOCAfterConnect(Sender: TObject);
Begin
  SetColor(Grp2, True);
  SetColor(Pnl1, True);
  SeeBtn.Enabled := (Length(Trim(TxtBox.Text))>0) And Adoc.Connected;
  Msg3.Caption := '連接成功.';
  Application.ProcessMessages;
End;

Procedure TFrmMain.ADOCAfterDisconnect(Sender: TObject);
Begin
  If isExiting Then Exit;
  SetColor(Grp2, False);
  SetColor(Pnl1, False);
End;

Procedure TFrmMain.ADOCConnectComplete(Connection: TADOConnection;
  Const Error: Error; Var EventStatus: TEventStatus);
Begin
  If isExiting Then Exit;
  SetColor(Grp2, Connection.Connected);
  SetColor(Pnl1, Connection.Connected);
  SeeBtn.Enabled := (Length(Trim(TxtBox.Text))>0) And Adoc.Connected;
End;

Procedure TFrmMain.FormShow(Sender: TObject);
Begin
  SetColor(Grp2, False);
  SetColor(Pnl1, False);
  ListBox1.Clear;
  ListBox1.Visible := False;
  Memo1.Visible := True;
  Memo1.Align := alClient;
  If FileExists('TxtBox.His') Then
    TxtBox.Properties.LookupItems.LoadFromFile('TxtBox.His');
End;

Procedure TFrmMain.FormCloseQuery(Sender: TObject; Var CanClose: Boolean);
Begin
  isExiting := True;
End;

Function TFrmMain.ChkTbl(Tbl, Txt: String): Boolean;
Var
  Find: Boolean;
  Idx: Integer;
  Fld: String;
Begin
  Bar2.Position := 0;
  ShowMsg('檢索:[' + Tbl + ']');
  Result := False;
  Find := False;
  If FQry.Active Then FQry.Close;
  If QryF.Active Then QryF.Close;
  FQry.SQL.Text := 'Select Top 0 * From ' + Tbl;
  Try
    FQry.Open;
    Bar2.Max := FQry.FieldCount;
    Application.ProcessMessages;
    For Idx := 0 To FQry.FieldCount - 1 Do Begin
      If MustStop Then Break;
      Fld := FQry.Fields[Idx].FullName;
      ShowMsg('檢索:[' + Tbl + '] --->' + Fld, -1, Idx);
      If FQry.Fields[Idx].DataType In
        [ftString, ftSmallint, ftInteger, ftWord, ftBoolean, ftFloat, ftCurrency,
        ftBCD, ftDate, ftTime, ftDateTime, ftMemo, ftFmtMemo] Then Begin
        If QryF.Active Then QryF.Close;
        QryF.SQL.Clear;
        Case FQry.Fields[Idx].DataType Of
          ftString: Begin
              QryF.SQL.Text := 'Select Count(' + Fld + ') As Cnt From ' + Tbl;
              QryF.SQL.Add('Where ' + Fld + ' Like ''%' + Txt + '%''');
            End;
          ftMemo, ftFmtMemo: Begin
              QryF.SQL.Text := 'Select Count(*) As Cnt From ' + Tbl;
              QryF.SQL.Add('Where PATINDEX(''%' + Txt + '%'',' + Fld + ')>0');
            End;
          Else Begin
              QryF.SQL.Text := 'Select Count(' + Fld + ') As Cnt From ' + Tbl;
              QryF.SQL.Add('Where Cast(' + Fld + ' As VarChar(2000)) Like ''%' + Txt + '%''');
            End;
        End;
        Try
          QryF.Open;
          If QryF.FieldByName('Cnt').AsInteger > 0 Then Begin
            ListBox1.Items.Add(Tbl + '  --->   ' + Fld);
            Find := True;
            Break;
            If QryF.Active Then QryF.Close;
          End;
        Except
          Clipboard.AsText := QryF.SQL.Text;
          If QryF.Active Then QryF.Close;
        End;
      End;
    End;
    Result := Find;
  Except

  End;

End;

Procedure TFrmMain.FindText(Txt: String);
Var
  OnlyChk: Boolean; //是否僅僅檢查選擇的表
  Tbl: String;
  Idx: Integer;
Begin
  Bar1.Position := 0;
  Bar1.Position := 0;
  Bar1.Max := TblCnt;
  ShowMsgV(2);
  FQry := TAdoQuery.Create(Self);
  QryF := TAdoQuery.Create(Self);
  FQry.Connection := ADoc;
  QryF.Connection := ADoc;
  Memo1.Visible := False;
  Memo1.Align := alNone;
  ListBox1.Visible := True;
  ListBox1.Align := alClient;
  ListBox1.Items.Clear;
  Application.ProcessMessages;
  Try
    OnlyChk := False;
    For Idx := 0 To ChkTblList.Items.Count - 1 Do Begin
      If ChkTblList.Checked[Idx] Then Begin
        OnlyChk := True;
        Break;
      End;
    End;
    For Idx := 0 To ChkTblList.Items.Count - 1 Do Begin
      If MustStop Then Break;
      Tbl := ChkTblList.Items[Idx];
      If OnlyChk And (ChkTblList.Checked[Idx] = False) Then Begin
        ShowMsg('檢索:' + Tbl, Idx);
        Continue;
      End;
      ShowMsg('檢索:' + Tbl, Idx);
      ChkTbl(Tbl, Txt);
    End;
  Finally
    HideMsg; //隱藏MsgPnl
    FQry.Free;
    QryF.Free;
    ShowMessage('檢索完畢!包含內容的表有' + Inttostr(ListBox1.Count) + '個');
  End;
End;

Procedure TFrmMain.SeeBtnClick(Sender: TObject);
Begin
  MustStop:=False;
  FindText(TxtBox.Text);
End;

procedure TFrmMain.SetBtnClick(Sender: TObject);
begin
  If GetConnStr then Begin //獲取連接設置
    LinkBtn.Enabled := True ;
    LinkBox.Text := ConnStr ;
    If Adoc.Connected Then Adoc.Close ;
    Adoc.ConnectionString := ConnStr ;
  End;
end;

procedure TFrmMain.FormCreate(Sender: TObject);
Var
  ts: TStrings;
  ConfigFile:String;
Begin
  //CoInitialize(Nil);
  If ADOC.Connected Then
    AdoC.Close;
  ConfigFile := 'Connect.Dll';
  ConnStr := '';
  If FileExists(ConfigFile) Then Begin
    ts := TStringList.Create;
    ts.LoadFromFile(ConfigFile);
    Connstr := ts.Text;
    Ts.Free;
    Connstr := Decode(Connstr);
  End;
  LinkBox.Text := Connstr;
  Adoc.ConnectionString := ConnStr;
  SplitStr(ConnStr);
  If ConnStr = '' Then Begin
    LinkBtn.Enabled := False;
  End;
end;

procedure TFrmMain.StopBtnClick(Sender: TObject);
begin
  If MessageDlg('您確實想終止搜索嗎?',MtWarning,[MbYes,MbCancel],0)=MrYes Then Begin
    MustStop:=True;
  End;
end;

procedure TFrmMain.ListBox1DblClick(Sender: TObject);
Var
  Txt,LkTxt:String;
begin
  If ListBox1.ItemIndex=-1 Then Exit;
  Txt:=ListBox1.Items[ListBox1.ItemIndex];
  LkTxt:=Trim(TxtBox.Text);
  ViewData(Txt,LkTxt); 
end;

procedure TFrmMain.TxtBoxPropertiesValidate(Sender: TObject;
  var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
Var
  ss:String;
begin
  If VarType(DisplayValue)=VarNull Then Exit;
  ss:=VarAsType(DisplayValue,VarString);
  SeeBtn.Enabled := (Length(Trim(ss))>0) And Adoc.Connected;
  If ss='' Then Exit;
  If TxtBox.Properties.LookupItems.IndexOf(ss)=-1 Then
    TxtBox.Properties.LookupItems.Add(ss);
  TxtBox.Properties.LookupItems.SaveToFile('TxtBox.His');

end;

procedure TFrmMain.TxtBoxPropertiesChange(Sender: TObject);
begin
  SeeBtn.Enabled := (Length(Trim(TxtBox.Text))>0) And Adoc.Connected;
end;

End.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区在线观看欧美| 国产精品美女视频| 91麻豆swag| 91麻豆swag| 日本国产一区二区| 欧美性受极品xxxx喷水| 欧美在线观看一二区| 欧美日韩国产电影| 91精品国产综合久久久久久漫画| 欧美手机在线视频| 欧美三级电影在线看| 欧美日韩免费一区二区三区视频| 一区二区免费看| 一区二区中文字幕在线| 亚洲私人黄色宅男| 亚洲自拍偷拍麻豆| 奇米精品一区二区三区在线观看| 国产日韩欧美在线一区| 亚洲欧洲精品一区二区三区| 国产精品亲子伦对白| 亚洲视频 欧洲视频| 日日夜夜一区二区| 国产老肥熟一区二区三区| a美女胸又www黄视频久久| 欧美图区在线视频| 久久精品亚洲麻豆av一区二区| 99精品视频一区| 欧美色图免费看| 精品国产伦一区二区三区观看方式| 99久久婷婷国产综合精品电影| 日韩av电影一区| 国产精品资源在线看| 一本大道综合伊人精品热热| 欧美日韩一区二区三区在线| 日韩精品在线看片z| 亚洲精品中文在线观看| 久久爱www久久做| 一本一道波多野结衣一区二区| 高清不卡一区二区在线| 在线视频国内自拍亚洲视频| 26uuu亚洲| 亚洲综合激情网| 国产成人亚洲综合a∨猫咪| 色94色欧美sute亚洲线路二| 亚洲精品在线电影| 亚洲夂夂婷婷色拍ww47| 成人a免费在线看| 337p亚洲精品色噜噜| 亚洲色图视频网站| 国产盗摄视频一区二区三区| 在线播放中文字幕一区| 亚洲欧洲综合另类| 国产精品一级在线| 日韩欧美中文字幕公布| 一区二区激情小说| 91免费看片在线观看| 国产婷婷一区二区| 久久综合综合久久综合| 欧美日韩综合在线免费观看| 中文字幕一区免费在线观看| 国产一区二区三区最好精华液| 国内欧美视频一区二区 | 国产一区二区伦理片| 在线观看av不卡| 国产精品毛片久久久久久久| 日韩电影免费一区| 欧美精品久久久久久久多人混战| 欧美性受xxxx| 亚洲免费观看高清完整版在线观看熊| 国产精品久久99| 国内一区二区视频| 久久男人中文字幕资源站| 狠狠色狠狠色综合| 精品99一区二区| 国产精品影音先锋| 欧美国产精品久久| voyeur盗摄精品| 国产精品久久99| 色婷婷精品大在线视频| 亚洲欧美日韩国产综合在线| 色诱视频网站一区| 一区二区三区91| 在线不卡免费欧美| 国产自产视频一区二区三区| 久久免费看少妇高潮| 国产成人在线视频网站| 国产精品女主播av| 在线视频亚洲一区| 蜜桃视频在线观看一区| 精品国一区二区三区| 国产91清纯白嫩初高中在线观看 | 一区二区三区不卡视频在线观看| 亚洲mv在线观看| 宅男在线国产精品| 免费成人av在线播放| 久久亚洲影视婷婷| proumb性欧美在线观看| 亚洲一级二级在线| 日韩欧美成人激情| 成人综合婷婷国产精品久久免费| 91麻豆精品国产综合久久久久久 | 成人久久视频在线观看| 中文字幕在线观看不卡| 欧美日韩国产一级二级| 激情亚洲综合在线| 国产精品成人免费| 欧美精品久久99久久在免费线| 日本一二三不卡| 欧美国产亚洲另类动漫| 一区二区高清视频在线观看| 亚洲成人资源在线| 久久久夜色精品亚洲| 午夜久久久影院| 成人综合激情网| 婷婷丁香久久五月婷婷| 亚洲成人av一区二区三区| 亚洲成人你懂的| 丝袜诱惑亚洲看片| 日韩国产欧美视频| 老司机午夜精品99久久| 裸体歌舞表演一区二区| 国内精品国产三级国产a久久| 日韩午夜在线观看视频| 欧美视频日韩视频| 91精品国产综合久久香蕉的特点| 美女高潮久久久| 日韩黄色小视频| 国内精品在线播放| 成人一级黄色片| 91视频你懂的| 欧美三级韩国三级日本三斤| 欧美一区二区三区啪啪| 欧美成人r级一区二区三区| 国产亚洲一区二区三区四区 | 久久综合久色欧美综合狠狠| 日韩亚洲欧美在线观看| 久久久不卡网国产精品一区| 国产精品丝袜91| 亚洲综合免费观看高清完整版| 中文字幕 久热精品 视频在线| 欧美日高清视频| 日韩欧美成人一区二区| 中文字幕欧美国产| 亚洲自拍偷拍欧美| 狠狠久久亚洲欧美| 色综合咪咪久久| 欧美二区在线观看| 国产精品情趣视频| 日韩不卡一二三区| 丁香天五香天堂综合| 欧美日韩亚洲综合在线| 久久亚洲二区三区| 亚洲日本在线a| 久久精品99国产国产精| 99在线精品免费| 日韩女优av电影| 一区二区三区日韩欧美精品| 麻豆精品国产传媒mv男同| 91国偷自产一区二区三区观看 | 最新日韩av在线| 亚洲在线视频免费观看| 国产在线一区二区| 欧美丰满少妇xxxxx高潮对白| 欧美午夜不卡视频| 国产精品污污网站在线观看 | 国产一区二区三区高清播放| 欧美影院一区二区三区| 国产日产欧美精品一区二区三区| 欧美一区二区三区四区久久| 中文av一区二区| 日韩成人免费电影| 欧美主播一区二区三区美女| 国产精品青草久久| 国产精品自拍毛片| 精品久久久久久久久久久久包黑料 | 亚洲精品欧美综合四区| 国产在线视频一区二区三区| 欧美少妇bbb| 亚洲免费av在线| 99在线精品观看| 中文字幕精品一区二区精品绿巨人| 国产精品午夜免费| 美女网站在线免费欧美精品| 欧洲一区二区三区免费视频| 国产精品日韩精品欧美在线| 国产综合色产在线精品| 91精品国产色综合久久ai换脸| 欧美一二三四在线| 亚洲国产精品天堂| 色综合中文综合网| 国产精品久久久久影视| 国产福利一区二区三区在线视频| 99精品欧美一区二区三区小说 | 日本91福利区| 欧美性大战久久久久久久| 有码一区二区三区| 色综合中文字幕| 亚洲乱码国产乱码精品精可以看| 亚洲国产一区二区视频| 欧美亚洲国产一区二区三区 |