问题:
使用ADOQuery以下代码进行模糊查询时,却发现没办法进行模糊查询,查询的结果是完全匹配查询模式,请问要如何才能实现ADOQuery模糊查询,感谢!代码:
begin
ADOQuery1.close;
ADOQuery1.SQL .clear;
ADOQuery1.SQL .ADD('select * from TMaterial where Project like :Proj');
ADOQuery1.Parameters .ParamByName('Proj').Value :='%'+ComboBox2.Text+'%';
ADOQuery1.open;
end;
使用ADOQuery以下代码进行模糊查询时,却发现没办法进行模糊查询,查询的结果是完全匹配查询模式,请问要如何才能实现ADOQuery模糊查询,感谢!代码:
begin
ADOQuery1.close;
ADOQuery1.SQL .clear;
ADOQuery1.SQL .ADD('select * from TMaterial where Project like :Proj');
ADOQuery1.Parameters .ParamByName('Proj').Value :='%'+ComboBox2.Text+'%';
ADOQuery1.open;
end;
begin
if Trim(EdtBookID.Text)<>'' then
sqlstr:=sqlstr+' 书号 like ''%'+Trim(EdtBookID.Text)+'%'''
else
sqlstr:=sqlstr+'1=1';
if Trim(EdtBookName.Text)<>'' then
sqlstr:=sqlstr+' AND 书名 like ''%'+Trim(EdtBookName.Text)+'%''';
if Trim(EdtAuthor.Text)<>'' then
sqlstr:=sqlstr+' AND 作者 like ''%'+Trim(EdtAuthor.Text)+'%''';
if Trim(EdtPress.Text)<>'' then
sqlstr:=sqlstr+' AND 出版社 like ''%'+Trim(EdtPress.Text)+'%''';
//ShowMessage(sqlstr);
with FrmMain.Query do
begin
sql.Clear;
sql.Add('SELECT * FROM book WHERE '+sqlstr);
//ShowMessage(sql.Text);
open;
end;
end;
ADOQuery1.close;
ADOQuery1.SQL .clear;
ADOQuery1.SQL .ADD('select * from TMaterial where Project like ''%'+Trim(ComboBox2.Text)+'%''')
//ADOQuery1.SQL .ADD('select * from TMaterial where Project like :Proj');
//ADOQuery1.Parameters .ParamByName('Proj').Value :='%'+ComboBox2.Text+'%';
ADOQuery1.open;
end;注: delphi6/delphi7 在模糊查询方面可能有所不同???
ADOQuery1.SQL .ADD('select * from table where field like ' +#39+ '%' +trim(edit1.text)+'%'+#39);
ADOQuery1.close;
ADOQuery1.SQL .clear;
ADOQuery1.SQL .ADD('select * from TMaterial where Project like ''%'+ComboBox2.Text+'%''');
ADOQuery1.open;
end;