DELPHI SQL parameter ‘orderNum’ not found

SQLserver2008中有在相关表中定义orderNum,而且ADOQuery中Parameter的相关参数都设置为true,就是报错。之前orderNo:Integ... SQL server 2008中有在相关表中定义orderNum,而且ADOQuery中Parameter的相关参数都设置为true,就是报错。

之前orderNo:Integer;并且orderNo:=1.
DataModule1.ADOQuery1Custom.close;
DataModule1.ADOQuery1Custom.SQL.Clear;
DataModule1.ADOQuery1Custom.SQL.Add('SELECT * FROM Custom');
DataModule1.ADOQuery1Custom.SQL.Add('WHERE customName='''+UserName+'''and password='''+UserPass+'''');
DataModule1.ADOQuery1Custom.Open;
DataModule1.ADOQuery1Custom.Active;
BackPass:=DataModule1.ADOQuery1Custom.FieldByName('password').Value;
OrderNo:=OrderNo+1;
DataModule1.ADOQuery1Custom.Parameters.ParamByName('orderNum').Value := OrderNo;
展开
 我来答
修怀芹26
推荐于2016-04-18 · TA获得超过1208个赞
知道小有建树答主
回答量:695
采纳率:75%
帮助的人:452万
展开全部
SQL语句错了,你的sql语句部分并没有定义参数,所以你不能使用paramByName来给参数赋值。
如果需要使用参数 你的sql语句需要改为以下形式.
select * from custom where customname=':username' and password=':userpass' and orderNum=:orderNum

只有这样 query对象才会知道 需要给相应的参数进行赋值。
这里 :username :userpass :orderNum 才是参数的变量名称。
hc360whot
2012-12-08 · TA获得超过307个赞
知道答主
回答量:337
采纳率:0%
帮助的人:114万
展开全部
你的sql语句里没有orderNum的参数,而且你这个sql语句很不规范!容易被注入攻击,就是说人家在你的UserName里加个'这个符号你数据库就有可能被攻陷,正确的做法是全部用parameter
举例:
DataModule1.ADOQuery1Custom.close;
DataModule1.ADOQuery1Custom.SQL.Clear;
DataModule1.ADOQuery1Custom.SQL.Add('SELECT * FROM Custom');
DataModule1.ADOQuery1Custom.SQL.Add('WHERE customName=:UserName and password=:UserPass');//注意这行
DataModule1.ADOQuery1Custom.Parameters.ParamByName('UserName').Value=UserName;
DataModule1.ADOQuery1Custom.Parameters.ParamByName('UserPass').Value=UserPass;
DataModule1.ADOQuery1Custom.Open;
DataModule1.ADOQuery1Custom.Active;
BackPass:=DataModule1.ADOQuery1Custom.FieldByName('password').Value;
OrderNo:=OrderNo+1;
DataModule1.ADOQuery1Custom.Parameters.ParamByName('orderNum').Value := OrderNo;//此行无效,因为需要在open之前进行参数赋值!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-12-08
展开全部
它的意思是你没有一个名字叫orderNum的参数,你再最后一句的时候看一下Parameters里都有什么
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式