當前位置:編程學習大全網 - 源碼下載 - 高手幫忙,delphi關於模糊查詢的問題

高手幫忙,delphi關於模糊查詢的問題

procedure TForm1.Button1Click(Sender: TObject);

var

sql,str: string;

i: integer;

begin

ListBox.Clear;

ListBox.Items.Add('數據庫'^I'表名'^I'字段名'^I'字段值');

sql:='select name from master..sysdatabases where name not in (''master'',''model'',''msdb'',''Northwind'',''pubs'',''tempdb'')';

ADOQDB.Close;

ADOQDB.SQL.Clear;

ADOQDB.SQL.Add(sql);

ADOQDB.Open;

ADOQDB.Next;

while not ADOQDB.Eof do

begin

sql:='select name,id from '+Trim(ADOQDB.FieldByName('NAME').AsString)+'..sysobjects where xtype=''U''';

ADOQTB.Close;

ADOQTB.SQL.Clear;

ADOQTB.SQL.Add(sql);

ADOQTB.Open;

while not ADOQTB.Eof do

begin

sql:='select name from '+Trim(ADOQDB.FieldByName('NAME').AsString)+'..syscolumns where id='+Trim(ADOQTB.FieldByName('id').AsString)+' and xtype in (167,175,231,239)';

ADOQFD.Close;

ADOQFD.SQL.Clear;

ADOQFD.SQL.Add(sql);

ADOQFD.Open;

while not ADOQFD.Eof do

begin

str:='';

for i:=0 to CheckListBox.Count-1 do

begin

if CheckListBox.Checked[i] then

str:=Trim(ADOQFD.FieldByName('name').AsString)+' like ''%'+CheckListBox.Items.Strings[i]+'%'' or ';

end;

if str='' then

exit;

str:=copy(str,1,length(str)-3);

sql:='select '+Trim(ADOQFD.FieldByName('name').AsString)+' from '+Trim(ADOQDB.FieldByName('NAME').AsString)+'..'+Trim(ADOQTB.FieldByName('NAME').AsString)+' where '+str;

ADOQ.Close;

ADOQ.SQL.Clear;

ADOQ.SQL.Add(sql);

ADOQ.Open;

while not ADOQ.Eof do

begin

ListBox.Items.Add(Trim(ADOQDB.FieldByName('NAME').AsString)+' '+Trim(ADOQTB.FieldByName('NAME').AsString)+' '+Trim(ADOQFD.FieldByName('NAME').AsString)+' '+Trim(ADOQ.FieldByName(Trim(ADOQFD.FieldByName('NAME').AsString)).AsString));

ListBox.Update;

ADOQ.Next;

end;

ADOQFD.Next;

end;

ADOQTB.Next;

end;

ADOQDB.Next;

end;

showmessage('檢索完畢');

end;

  • 上一篇:發夾怎麽發音
  • 下一篇:車主點評:超出我的預期,為比亞迪S2點贊(壹個真實車主的真實口碑)
  • copyright 2024編程學習大全網