CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

like的麻烦!!哎,帮帮忙!

楼主kkty(秧子)2001-02-11 11:32:00 在 Delphi / VCL组件开发及应用 提问

高位高手可否告之,我下面的代码到底错在那??我用LIKE模糊查询,我用的是DELPHI和SQL  
  ha3是动态表名,而cc4是动态的字段名,下面的语句我不知错在那里,我如果把LIKE改为=,把cc5,改为cc2,也就是sql.add(format('where   %s='''+cc2+'''',[cc4])),他就能查到记录,可下面的语句一执行就报错,说no   argument   for   format   '%7%'.edit1.text:=7,所以为什么会这样了。这样才能解决了???  
  cc2:=trim(edit1.text);  
  cc5:='%'+cc2+'%';  
  with   adoquery1   do  
  begin  
  close;  
  sql.clear;  
  sql.add(format('select   *   from   %s',[ha3]));  
  sql.add(format('where   %s   like   '''+cc5+'''',[cc4]));  
   
  prepared;  
  open; 问题点数:20、回复次数:3Top

1 楼jingpingyi(jingpingyi)回复于 2001-02-11 11:40:00 得分 9

format函数的问题,  
  这样应该不会有问题:  
    SQL.Add('where   '+cc4+'   like   '+''''+cc5+'''');  
   
  Top

2 楼steps(壮丁)回复于 2001-02-11 14:13:00 得分 8

老问题了,同样是对Delphi里的'''认识不足  
  设cc4='Field1',   cc5='abc',则  
  format('where   %s   like   '''+cc5+'''',[cc4])='where   Field1   like   'abc''  
                                     ^^^^^^  
  结果根本不是个字符串,当然出错  
  而你需要的实际上是'where   Field1   like   ''abc'''  
  经过Delphi编译系统处理后才为字符串where   Field1   like   'abc'  
   
  jingpingyi的答案表达是正确的,不要用format  
  Top

3 楼xzisgood(夏)回复于 2001-02-11 17:05:00 得分 3

这样的问题你可以自己看看么.  
  showmessage(adoquery1.sql.CommaText);  
  显示的是sql语句,sql语法有没有错误,一眼就能看出来了.Top

相关问题

  • 麻烦,好大的麻烦!!
  • lpd好麻烦!!!
  • 麻烦大了!!!!!!!
  • 麻烦大了!!!
  • win98se麻烦大!
  • MFC真麻烦……~
  • URLConnection的麻烦??
  • win2003麻烦
  • 麻烦了麻烦了,在线求助
  • 择业大麻烦......

关键词

  • 语句
  • sql
  • cc
  • format
  • abc
  • 问题
  • field
  • where
  • add

得分解答快速导航

  • 帖主:kkty
  • jingpingyi
  • steps
  • xzisgood

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo