关于ADO查询(30分)

嫩手

Unregistered / Unconfirmed
GUEST, unregistred user!
我想问一下关于ADOQuery进行模糊查询的问题
用edit接收查询的关键字,怎么写代码实现模糊查询?
 
adoQuery1.close;
adoQuery1.sql.clear;
//for Access
adoQuery1.sql.add('select * from yourtab where name like "%'+Edit1.text+'%"');
//for SqlServer
//adoQuery1.sql.add('select * from yourtab where name like ''%'+Edit1.text+'%''');
adoQuery1.open;
 
试试adotable1.filter
在adotable1数据库中OnFilterRecord事件
find:=pos(查询关键词,所要查询的字段);
accept:=find>0;
 
总是提示:From 子句语法错误
 
贴出你写的查询语句看看
 
没错啊,下面的语句在我的系统上调试并通过
你的是什么数据库?access和sqlserver的写法不一样。
下面这个是access数据库的。
procedure TForm1.Button1Click(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select * From KH_TAB Where ZH like "%'+Edit1.Text+'%"');
ADOQuery1.Open;
end;
 
同意楼上的说法。
 
ADOQry.Close;
ADOQry.SQL.Clear;
ADOQry.SQL.Add('select * from '+BaseCmb.Text +'where '+ SearchCmb.Text +'like "%"'+Edit1.Text+'"%"');
ADOQry.Open;
其中:basecmb.text 是数据库
searchcmb.text 是字段
edit1.text 是关键字
 
showmessage看一下,sql里是什么东西,sql语句是不是对的。
 
要使用模糊查询最主要的是使用LIKE查询,具体语句自己好好处理好了;
 
你的语句错了!试试下面这个
ADOQry.SQL.Add('select * from '+BaseCmb.Text +' where '+ SearchCmb.Text +' like "%'+Edit1.Text+'%"');
 
adoQuery1.sql.add('select * from yourtab where name like ''%'+Edit1.text+'%''');
 
楼上的应该是最正确的,以前的都是一些细节上的问题:空格少啦;两个单引号写成双引号啦;
具体的语句:
ADOQry.SQL.Add('select * from ' + BaseCmb.Text + ' where ' + SearchCmb.Text + ' like ''%' + Edit1.Text + '%''');
 
多人接受答案了。
 
顶部