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

嵌入式sql语句参数赋值问题

楼主mnlisa()2003-11-02 10:50:59 在 Delphi / 数据库相关 提问

 
        close;  
                                      sql.Clear;  
                                      sql.Add('update   GoodsStore   set   RestNum   =   RestNum   +   :InputNum   ,TotalNum   =   TotalNum   +   :InputNum     where   GoodsId   =   :GoodsId   ');  
                                      Parameters.ParamByName('InputNum').Value   :=   ModifyDBGrid.DataSource.DataSet.FieldByName('InputNum').NewValue   -   ModifyDBGrid.DataSource.DataSet.FieldByName('InputNum').OldValue;  
                                      Parameters.ParamByName('GoodsId').Value   :=   ModifyDBGrid.DataSource.DataSet.FieldByName('GoodsId').OldValue;  
                                      ExecSQL;  
   
  sql语句如上,为什么用了同名参数时,比如:set   RestNum   =   RestNum   +   :InputNum   ,TotalNum   =   TotalNum   +   :InputNum,则执行的时候出现运行错误提示,不能将null赋值给totalnum,难道只有在RestNum   =   RestNum   +   :InputNum   这个语句时,inputnum才是赋值了的,第二个TotalNum   =   TotalNum   +   :InputNum语句中的inputnum的值为null??   为什么是这样的呢?实现这个参数赋值的机制是什么呢? 问题点数:0、回复次数:4Top

1 楼karach(卡车)回复于 2003-11-02 11:52:50 得分 0

眼花,下午在来看,先去吃饭Top

2 楼angle097113(深思不解)回复于 2003-11-02 12:15:01 得分 0

一个语句中不能出现重复的参数的名称的!Top

3 楼jingbianfc(『静⊙变』)回复于 2003-11-02 15:17:58 得分 0

不能有同名参数,我遇到过的,改名就OK了  
  sql.Clear;  
  sql.Add('update   GoodsStore   set   RestNum   =   RestNum   +   :InputNum1   ,TotalNum   =   TotalNum    +   :InputNum2     where   GoodsId   =   :GoodsId   ');  
  Parameters.ParamByName('InputNum1').Value   :=   ModifyDBGrid.DataSource.DataSet.FieldByName('InputNum').NewValue   -   ModifyDBGrid.DataSource.DataSet.FieldByName('InputNum').OldValue;  
  Parameters.ParamByName('InputNum2').Value   :=   ModifyDBGrid.DataSource.DataSet.FieldByName('InputNum').NewValue   -   ModifyDBGrid.DataSource.DataSet.FieldByName('InputNum').OldValue;  
    Parameters.ParamByName('GoodsId').Value   :=   ModifyDBGrid.DataSource.DataSet.FieldByName('GoodsId').OldValue;  
    ExecSQL;Top

4 楼mnlisa()回复于 2003-11-02 15:24:51 得分 0

我知道怎么解决这个问题,  
  但是我想知道的是为什么不能用同名参数,,,  
  以及adoquery进行传递的机制是什么,Top

相关问题

  • 入门问题 如何使用嵌入式SQL语句
  • 嵌入式sql语句是否需要commit?
  • 如何在 C#中使用嵌入式sql语句?
  • 赋值语句
  • DELPHI中如何使用SQL的赋值语句.查询结果赋值问题.
  • 嵌入式SQL中的select、insert、update、delete语句要检查sqlcode吗?
  • 给字符串赋值SQL语句的问题!GOD SAVE ME!
  • 关于动态给sql语句赋值的ParamByName
  • 如何用SQL语句给数组赋值
  • 如何用ADO对SQL语句参数进行赋值?

关键词

  • 语句
  • sql
  • inputnum
  • modifydbgrid
  • restnum
  • 赋值
  • goodsid
  • totalnum
  • fieldbyname
  • 参数

得分解答快速导航

  • 帖主:mnlisa

相关链接

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

广告也精彩

反馈

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