关于sql与DAOQuery的动态查询与模糊查询的问题 (50分)

  • 主题发起人 主题发起人 niceboy911
  • 开始时间 开始时间
N

niceboy911

Unregistered / Unconfirmed
GUEST, unregistred user!
代码:
procedure TForm7.BitBtn1Click(Sender: TObject);
begin
if  form1.DAOQuery1.Active
then form1.DAOQuery1.Active:=False;
form1.DAOQuery1.SQL.Clear;
form1.DAOQuery1.SQL.Add('select * from gtda where 字号名称 like:zihao');
form1.DAOQuery1.ParamByName ('zihao').AsString:=edit1.text;
form1.DAOQuery1.Open;
end;
我使用了以上语句可以使用精确搜索,但是我想使用模糊查询把它改为:
代码:
procedure TForm7.BitBtn1Click(Sender: TObject);
begin
if  form1.DAOQuery1.Active
then form1.DAOQuery1.Active:=False;
form1.DAOQuery1.SQL.Clear;
form1.DAOQuery1.SQL.Add('select * from gtda where 字号名称 like:zihao');
form1.DAOQuery1.ParamByName ('zihao').AsString:='%'+edit1.text+'%';
form1.DAOQuery1.Open;
end;
编译后却什么都查不到,请问哪时础的错,或有什么更好的方法?(gtda为表名,字号名称 为字段名)
补充一下是access的数据库
 
另外我想知道怎么才能在一个panel控件上显示出查询到的记录数,谢谢,分不够可以再加
 
试一试看
form1.DAOQuery1.SQL.Add('select * from gtda where RTRIM(字号名称) like:zihao');
 
在panel控件放显示控件显示就行了。
 
showmessage(inttostr(dbgrid1.DataSource.DataSet.RecordCount));
不知道这样的数据可不可以?
 
谢谢jinmen,能不能把代码写全,另外:RTRIM是什么意思呢?还有放什么显示控件?
我只想显示出对查询结果的记录数的一个统计。麻烦了,谢谢
 
form1.DAOQuery1.SQL.Clear;
form1.DAOQuery1.SQL.Add('select * from gtda where 字号名称 like:zihao');
form1.DAOQuery1.ParamByName ('zihao').AsString:='''%'+edit1.text+'%''';
form1.DAOQuery1.Open;
这样写就可以了
因为在sql语句中要写成like '%字符%',所以你的参数中也必须有引号.
 
你先试一下,如果可以查出来,我再告诉你原因,就是加RTRIM,其他不变。
在panel上放edit控件
edit.text:=inttostr(DAOQuery1.recordcount);//查询完后使用
 
谢谢上面各位,不过我试了,都不能完成模糊查询,而且精确查询也查不到,dbgrid1会变
成空的,不知道该怎么办?不知道哪里出错了……以上代码好多人都说可以用,但是实际
不行
 
各位老大,帮我呀,怎么才能模糊查询成功?
另外谢谢大家,
form1.Panel1.Caption:='当前记录数为:'+inttostr(form1.DAOQuery1.recordcount)+'条';
这样可以显示记录数了,但是我放在什么事件后才能不断自动变成现在的记录数呢?
分会给大家加上的:)感激不尽
 
我的QQ:28279656,我喜欢和喜欢delphi的朋友一起聊:)谢谢
 
谢谢,大家,能否加你们QQ?我的是28279656
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
928
SUNSTONE的Delphi笔记
S
后退
顶部