CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  数据库相关

如何用DELPHI5.0在access数据库里实现模糊查询

楼主hadecsdn(悟知)2004-07-03 20:09:56 在 Delphi / 数据库相关 提问

SQL.Add('   SELECT   SP_ID,NAME,UNIT   FROM   SPXX     ');  
              SQL.Add('   Where   NAME   LIKE   :pNAME   ');  
              SQL.Add('   Order   By   NAME     ');  
              ParamByname('pNAME').AsString   :=     '*'+edCPMC.Text+'*'   ;  
  以上查询没有结果,请高手指教,多多给分哦! 问题点数:40、回复次数:10Top

1 楼bob008(冻冬)回复于 2004-07-03 21:45:03 得分 0

var  
      sqlstr:='select   *   from   hahahaha   where   name   like   通配符'+EDIT1.TEXT+’%’  
  ..  
  SQLADD(SQLSTR);  
  ..  
  可能有的地方写错了,大致是这个样子,ACCESS的偶常这么干Top

2 楼hadecsdn(悟知)回复于 2004-07-04 09:03:20 得分 0

access   里%号好像应该由*代替吧,我写的格式如下:  
  var  
    sqlstr   :=   'select   *   from   SPXX   where   name   like   "*'+edit1.text+'*'  
   
  ..  
  sql.add(sqlstr)  
   
  在执行时报错:参数不足,期待是1Top

3 楼hnwzs(蚂蚁)回复于 2004-07-04 10:56:45 得分 0

sqlstr   :=   'select   *   from   SPXX   where   name   like   "%'+edit1.text+'%"'Top

4 楼wizardqi(男巫)回复于 2004-07-04 10:57:18 得分 0

sqlstr   :=   'select   *   from   SPXX   where   name   like   "*'+edit1.text+'*"'  
  这样呢?  
  好象你少了半个引号。  
  Top

5 楼hadecsdn(悟知)回复于 2004-07-04 12:16:58 得分 0

不好意思,我上边少写了一个引号,我在程序里就是按“男巫”老哥的方法写的,可一直报上边哪个错误,老兄可否试验一把,谢谢!Top

6 楼wizardqi(男巫)回复于 2004-07-04 12:45:22 得分 0

SELECT   *   FROM   EMPLOYEE   WHERE   NAME   LIKE   "%小%"  
  这个执行通过(凡含小的都找到了)。Top

7 楼wizardqi(男巫)回复于 2004-07-04 12:47:59 得分 0

如果你自己组合的SQL语句执行通不过,你可以先把组合的结果输出自己看一下有没问题。  
  Top

8 楼hadecsdn(悟知)回复于 2004-07-04 12:51:26 得分 0

在access里直接执行语句可以得到正确的结果,但是组合起开在程序里调用,就报错:  
  “...参数不足,期待是1...”,  
  想知道是什么问题。其他的查询都没有问题,只有这个模糊查询出问题了!  
  请各位大侠多多指点,在线等........!  
   
  Top

9 楼wizardqi(男巫)回复于 2004-07-04 12:51:31 得分 40

把  
  L.Add('   SELECT   SP_ID,NAME,UNIT   FROM   SPXX     ');  
              SQL.Add('   Where   NAME   LIKE   :pNAME   ');  
              SQL.Add('   Order   By   NAME     ');  
              ParamByname('pNAME').AsString   :=     '*'+edCPMC.Text+'*'   ;  
  换为  
  L.Add('   SELECT   SP_ID,NAME,UNIT   FROM   SPXX     ');  
              SQL.Add('   Where   NAME   LIKE   :pNAME   ');  
              SQL.Add('   Order   By   NAME     ');  
              ParamByname('pNAME').AsString   :=     '%'+edCPMC.Text+'%'   ;  
  看看有无结果,很多SQL引擎通配符不一致.Top

10 楼hadecsdn(悟知)回复于 2004-07-04 12:59:36 得分 0

搞定了,谢谢   wizardqi(男巫)。Top

相关问题

  • 为什么用delphi+ado+access数据库不能进行模糊查询
  • 数据库模糊查询问题
  • delphi数据库的查询问题
  • DELPHI查询数据库SYBASE的问题
  • DELPHI对ACCESS数据库的查询
  • 菜鸟问题:在delphi怎么模糊查询数据库记录呀?在线等待,马上给分1
  • 在Delphi中使用SQL语句对数据库进行模糊查询的问题,请教高手。
  • 请问如何进行数据库模糊查询?
  • access数据库模糊查询的ASP如何实现?谢谢!
  • sql语句模糊查询的问题acess数据库!??????急

关键词

  • 查询
  • 执行
  • access
  • sql
  • spxx
  • sqlstr
  • edit1
  • 结果
  • 问题
  • sp

得分解答快速导航

  • 帖主:hadecsdn
  • wizardqi

相关链接

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

广告也精彩

反馈

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