如何用DELPHI5.0在access数据库里实现模糊查询
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




