Parameter not found的出现的原因

 

with AAdq do
begin
  SQL.Text:='INSERT INTO 需要做的事(选中,ID,类别,标题,优先级,状态,已完成百分比,说明,开始日期,截止日期,附件)VALUES(:选中,:ID,:类别,:标题,:优先级,:状态,:已完成百分比,:说明,:开始日期,:截止日期,:附件) ';
  Parameters.ParamByName('选中').Value:=AXuYaoArray[0];
  Parameters.ParamByName('ID').Value:= AXuYaoArray[1];
  Parameters.ParamByName('类别').Value:= AXuYaoArray[2];
  Parameters.ParamByName('标题').Value:= AXuYaoArray[3];
  Parameters.ParamByName('优先级').Value:= AXuYaoArray[4];
  Parameters.ParamByName('状态').Value:= AXuYaoArray[5];
  Parameters.ParamByName('已完成百分比').Value:= AXuYaoArray[6];
  Parameters.ParamByName('说明').Value:= AXuYaoArray[7];
  Parameters.ParamByName('开始日期').Value:= AXuYaoArray[8];
  Parameters.ParamByName('截止日期').Value:= AXuYaoArray[9];
  Parameters.ParamByName('附件').Value:= AXuYaoArray[10];
  ExecSQL;
end;

  

以前都是这么用的,可是今天却一直提示ParameterID not found,把Parameters.ParamByName(ID’).Value := getid();这句注释掉后,就提示后边的参数没有找到。

有人说values后要加空格,加了不行。重新写一遍,看是不是输入汉字字符了?试了各种方法,还是没解决问题.

后来看到有高人总结了三种原因 :

出现   ADOQuery1   :   parameter   "***r"   not   found   的提示的原因:   
  1、SQL语句本身无参数;   
  2、ADOQuery1的ParamCheck属性为False;   
  3、未设置ADOQuery1的Connection或ConnectionString属性。

  4、数据类型为ID自动增加,或者日期格式造成的;

仔细一检查,第三条。果断取改 。  

参考原文:http://blog.csdn.net/hank5658/article/details/3238180

参考原文2:https://wenku.baidu.com/view/98afdefa770bf78a65295489.html

 

posted @   delphi学习交流吧  阅读(5272)  评论(0编辑  收藏  举报
编辑推荐:
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
阅读排行:
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· PPT革命!DeepSeek+Kimi=N小时工作5分钟完成?
· What?废柴, 还在本地部署DeepSeek吗?Are you kidding?
· DeepSeek企业级部署实战指南:从服务器选型到Dify私有化落地
· 程序员转型AI:行业分析
点击右上角即可分享
微信分享提示