注册 登录
编程论坛 Delphi论坛

运行错误

gulihuajhy 发布于 2006-05-18 11:26, 695 次点击
本人运行查询按钮后出现这样的框,为什么呢?
只有本站会员才能查看附件,请 登录

我的查询代码为:var choice,content:string; begin choice:=ComboBox1.text; content:=edit1.text; if content='' then begin Application.Messagebox('请输入查询内容!','提示',Mb_OK+Mb_iconinformation); exit; end; DataModule1.adoquery3.Close; DataModule1.adoquery3.SQL.clear; DataModule1.adoquery3.SQL.add('select * from sydz where '+choice+' like :content'); DataModule1.ADOQuery3.Parameters.ParamByName('content').Value:='%'+edit1.text+'%'; DataModule1.adoquery3.Open; end;
6 回复
#2
xu20002006-05-18 14:08
你确保你的连接没有问题?
#3
gulihuajhy2006-05-19 09:12
运行错误
那上当然拉,我也不知道怎么回事哦,我就不明白那个跳出来的筐是啥意思,啥叫’参数不足,期待2‘呀?
那位高手有空帮我结局的话,请加我QQ:240973014
在此不胜感激。
#4
xu20002006-05-19 13:56
你是不是连接access数据库,它的匹配符不是%好像是#,
不如你改成这样
DataModule1.ADOQuery3.Parameters.ParamByName('content').Value:='#'+edit1.text+'#';
#5
gulihuajhy2006-05-23 10:19
不行哦

只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录


我修改了,现在运行起来就出现这个错误拉?为什么呀??
#6
形影随从2006-05-27 11:29
DataModule1.adoquery3.SQL.add('select * from sydz where '+choice+' like :content');
DataModule1.ADOQuery3.Parameters.ParamByName('content').Value:='%'+edit1.text+'%';

SELECT语句字符连接的语法错误哟!、
改成:
DataModule1.adoquery3.SQL.add('select * from sydz where choice like :%‘ + content + '%‘);
DataModule1.ADOQuery3.Parameters.ParamByName('content').Value:=edit1.text;
#7
形影随从2006-05-27 11:31
晕写错了。
改正:
DataModule1.adoquery3.SQL.add('select * from sydz where choice like %‘ + :content + '%‘);
DataModule1.ADOQuery3.Parameters.ParamByName('content').Value:=edit1.text;
1