procedure TForm8.Button4Click(Sender: TObject);
begin
with ADOQuery2 do
begin
close;
SQL.Clear;
SQL.Add('Select * from insp where a,b,c,d like'+''''+'%'+Trim(edit1.Text)+'%'+'''');
open;
end;
end;
procedure TForm8.Button4Click(Sender: TObject); begin with ADOQuery2 do begin close; SQL.Clear; SQL.Add('Select * from insp where a,b,c,d like'+''''+'%'+Trim(edit1.Text)+'%'+''''); open; end; end; 注:我用的是ADO连接的access数据库。 access 模糊查询like 为何查询不出来,请问错在哪里
var a1,a:string;
a1:='%'+edit1.text+'%';
a:='select * from 数据表 where 查询字段 like '''+a1+'''';
adoquery2.close;
adoquery2.sql.clear;
adoquery2.sql.add(a);
adoquery2.open;
楼上,下面两种虽然不显示错误,但点击按钮后,根本不动,还是所有的记录在那,为什么呢?
procedure TForm8.Button4Click(Sender: TObject);
begin
with ADOQuery2 do
begin
close;
SQL.Clear;
SQL.Add('Select * from insp where a like ''%学习%''');
Prepared;
open;
end;
end;
procedure TForm8.Button4Click(Sender: TObject);
begin
with ADOQuery2 do
begin
close;
SQL.Clear;
SQL.Add('Select * from insp where a like ''*学习*''');
Prepared;
open;
end;
end;
不过要用*代替%
SQL.Add('Select * from insp where a like ''*学习*''');
ACCESS的文档中有这么一句话:
请注意,ANSI SQL 通配符 (%) 和 (_) 仅在 Microsoft® Jet 4.X 版本和 Microsoft OLE DB Provider for Jet 中才是有效的。如果用在 Microsoft Access 或 DAO 中,那么它们被视为文本。
Select * from insp where a like '%学习%'
在ACCESS中模拟查询没有问题。
但放到delphi就有问题了:delphi显示下面红色显示4个错误。
procedure TForm8.Button4Click(Sender: TObject);
begin
with ADOQuery2 do
begin
close;
SQL.Clear; SQL.Add('Select * from insp where a like '%学习%');
Prepared;
open;
end;
end;