关于数据库模糊查询的问题!请大家多多发表意见!高分相送!来者有分!

qygd 2002-11-29 08:58:55
那位老兄请指教指教:我要实现对一个表模糊查询,连接用ADOTable1,只要使用该组件的过滤功能!对该表DZMC,RQ.....等字段模糊查询,并且字段输入都使用EDIT编辑框。该怎么写呀?
我写了第一个过滤条件为什么不行?举个例子:
procedure TForm2.Button1Click(Sender: TObject); //模糊查询
var
str_DZMC,str_RQ:string;
BEGIN
if Trim(Edit1.Text)='' then
str_dzmc:=''
else if Trim(Edit1.Text)<>'' Then
str_dzmc:=' and dzmc='+''''+Trim(Edit1.Text)+'*'+'''';
Form1.ADOTable1.Filter:=Str_dzmc;
Form1.ADOTable1.Filtered:=True;
Form1.ADOTable1.open;
close;
if Form1.ADOTable1.RecordCount=0 then
showMessage('没有查询到符合条件的数据。');
END;
...全文
65 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
ain2000 2002-12-06
  • 打赏
  • 举报
回复
是呀
adoquery 比adotable 灵活多了,基本table 功能都能实现.
大米团 2002-12-06
  • 打赏
  • 举报
回复
为什么不用query+sql语句呢?
256m 2002-12-05
  • 打赏
  • 举报
回复
字段 Like '%XXX%'
zhangqiufk 2002-12-05
  • 打赏
  • 举报
回复
up
zssyf 2002-11-30
  • 打赏
  • 举报
回复
用ADOQUERY 吧,将参数用EDIT导入。
qygd 2002-11-30
  • 打赏
  • 举报
回复
我的E-MAIL是:qygd@163.com
searoom 2002-11-30
  • 打赏
  • 举报
回复
var
sSearch:string;
sFilter:string;
begin
sSearch:=trim(Edit.text);
sFilter:='';
if sSearch<>'' then
sFilter:='DZMC like ''%'+sSearch+''' or RQ like ''%'+sSearch+'%''';

Form1.ADOTable1.Close;
Form1.ADOTable1.Filtered:=false;
Form1.ADOTable1.Filter:=sFilter;
Form1.ADOTable1.Filtered:=True;
Form1.ADOTable1.open;
end;

----------------------
好像 ADO 和 BDE 有区别底,BDE 用的是 col='val*',呵呵,很怪的那种
tangyong_delphi 2002-11-30
  • 打赏
  • 举报
回复
我做过,请给我电子邮件!
flysky66 2002-11-30
  • 打赏
  • 举报
回复
以后可以考虑用clientDataSet
pandarus 2002-11-30
  • 打赏
  • 举报
回复
都說完了,只好來接分了.
chenjiong 2002-11-29
  • 打赏
  • 举报
回复
'''''的问题,去掉几个试试就行了。
dschebei 2002-11-29
  • 打赏
  • 举报
回复
showmessage(str_dzmc)看看,什么样的?
smilelhh 2002-11-29
  • 打赏
  • 举报
回复
if Trim(Edit1.Text)='' then
str_dzmc:=''
else
str_dzmc:=' dzmc='+''''+Trim(Edit1.Text)+'*'+'''';
去掉and 试试
bluemeteor 2002-11-29
  • 打赏
  • 举报
回复
把and去掉

为什么不用ADOQuery?
lghzl 2002-11-29
  • 打赏
  • 举报
回复
procedure TForm2.Button1Click(Sender: TObject); //模糊查询
var
str_DZMC,str_RQ:string;
BEGIN
if Trim(Edit1.Text)='' then
str_dzmc:=''
else if Trim(Edit1.Text)<>'' Then
str_dzmc:=' dzmc='''+Trim(Edit1.Text)+'''*'''+'''';
Form1.ADOTable1.Filter:=Str_dzmc;
Form1.ADOTable1.Filtered:=True;
Form1.ADOTable1.open;
close;
if Form1.ADOTable1.RecordCount=0 then
showMessage('没有查询到符合条件的数据。');
END;
这样试一下
blueshu 2002-11-29
  • 打赏
  • 举报
回复
同意: smilelhh(blue)
bingshi 2002-11-29
  • 打赏
  • 举报
回复
多了个AND

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧