??? 模糊查询错在哪儿 ???(100分)

  • 主题发起人 liyonggang
  • 开始时间
L

liyonggang

Unregistered / Unconfirmed
GUEST, unregistred user!
1、我是一个Delphi初学者,对模糊查询,还是一片模糊。
我想在执行query查询时,列出所有匹配edit1.text内容的记录

例如:表中有三条记录:王丽、王丽丹、王晓丹,
在edit1中键入“王”,查询结果列出所有含“王”的记录,
键入“王丽”,结果列出“王丽、王丽丹”,
键入“丹”,结果列出“王丽丹、王晓丹”。
如果无匹配记录,弹出提示信息。
代码如何实现?

我下面的代码,执行后无反应,错在哪里?是不是变量前不能加通配符‘%’?
动态查询和静态查询功能有什么区别,能举个例子吗?

procedure TForm1.Button1Click(Sender: TObject);
begin
WITH QUERY1 DO
 BEGIN
 close;
 SQL.CLEAR ;
 SQL.ADD('SELECT * FROM gz.dbf WHERE name like :name');
 PARAMS[0].ASSTRING:='%edit1.text%';
 PREPARE;
[:)][:)][:)]OPEN;
END;
end;



2、请问,能否实现对所有字段范围的模糊查询,即不需要指定某字段,
类似Excel中的查找!?


3、用query查询得到的结果,好像不能直接修改,要想能修改,怎么做?(我不想用table,只想用query)
 
SQL..text := 'SELECT * FROM gz.dbf WHERE name like ''%' + edit1.text + '%''';

 
use adoquey then you can do what you want

if you want to search anything you should iclude all fields in your sql statements.
 
procedure TForm1.Button1Click(Sender: TObject);
begin
WITH QUERY1 DO
 BEGIN
 close;
 SQL.CLEAR ;
 SQL.ADD('SELECT * FROM gz.dbf WHERE name like '+edit1.text+'%');
OPEN;
END;
end;
用query查询得到的结果,好像不能直接修改,要想能修改
query1.RequestLive := true
 
实现对所有字段范围的模糊查询,即不需要指定某字段
可能要挨个写filed like '%条件%'
用adoquery可以修改
 
to wjs
成功了,我的头不痛了!
 
修改qry 查出的数据可以通过UpdateSql控件,设置Updatesql的更新字段(主键)就可以了
 

Similar threads

D
回复
0
查看
736
DelphiTeacher的专栏
D
D
回复
0
查看
712
DelphiTeacher的专栏
D
D
回复
0
查看
682
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
顶部