写sql语句时不要使用重复参数
来源:互联网 发布:在淘宝上买药的流程 编辑:程序博客网 时间:2024/05/16 08:49
在写程序时,会员累计消费需要+消费额,会员余额需要-消费额,我就用了同一个参数代替消费'额,结果碰了一鼻子灰.让我头疼了几乎一下午,最后还是项目经理指点迷津才得以解决.
原来的错误代码:
- with dataM.Q_xfgl_jz_gxhy do //更改会员消费次数、消费累计金额、卡内余额等信息
- begin
- close;
- sql.Clear;
- sql.Add('UPDATE hy SET hy_xfje = hy_xfje+:xfje, hy_xfcs = hy_xfcs+1, hy_je = hy_je-:xfje, hy_jf = hy_jf+:jf, hy_jfsyje = hy_jfsyje+:jfys ');
- sql.Add('WHERE (((hy_id)=:hy_id));');
- Parameters.ParamByName('xfje').Value := xfje;
- Parameters.ParamByName('jf').Value := strtofloat(lbl4.Caption);
- Parameters.ParamByName('jfys').Value := jfys;
- Parameters.ParamByName('hy_id').Value := hy_id;
- end;
后来的正确代码:
- with dataM.Q_xfgl_jz_gxhy do //更改会员消费次数、消费累计金额、卡内余额等信息
- begin
- close;
- sql.Clear;
- sql.Add('UPDATE hy SET hy_xfje = hy_xfje+:xfje, hy_xfcs = hy_xfcs+1, hy_je = hy_je-:xfje1, hy_jf = hy_jf+:jf, hy_jfsyje = hy_jfsyje+:jfys ');
- sql.Add('WHERE (((hy_id)=:hy_id));');
- Parameters.ParamByName('xfje').Value := xfje;
- Parameters.ParamByName('xfje1').Value := xfje;
- Parameters.ParamByName('jf').Value := strtofloat(lbl4.Caption);
- Parameters.ParamByName('jfys').Value := jfys;
- Parameters.ParamByName('hy_id').Value := hy_id;
- end;
没改之前程序编译 运行没有任何错误弹出,就是hy-je这个字段执行后为空. 把第二处的xfje改为xfje1,并给xfje1赋值后执行成功!
- 写sql语句时不要使用重复参数
- 尽量不要拼凑Sql语句,用参数来防注入
- 重复的数据只取一条,SQL语句如何写
- 关于直接写SQL语句和使用Parameter参数两种方式的迷惑
- sql语句中尽量不要使用复杂的函数运算
- ibatis中使用in写SQL语句
- sql去除重复语句
- sql去除重复语句
- sql去除重复语句
- sql去除重复语句
- sql 去重复语句
- 去除重复语句SQL
- sql去除重复语句
- sql查重复语句
- sql语句删除重复
- MYSQL+.NET中写SQL语句用参数的方式
- sql语句中参数的使用
- 在SQL语句中“?”参数的使用
- 拷贝构造和运算符重载(我解决的问题)
- .net实现--多线程之生产者/消费者问题
- 不用友元,访问类的私有成员变量的方法
- smtp类 支持群发,支持附件 (share my scripts系列)
- 获取C++类中的虚函数表的指针和虚函数表中函数的指针
- 写sql语句时不要使用重复参数
- 常用java date 方法集合
- 屏蔽vc连接ACCESS容易产生的警告:waring 4146
- First Look at Silverlight 2--Part6:使用用户自定义控件实现祝主/子结构
- (转帖)现代人的学习方式
- 几个常用sql函数使用举例
- 不错的SQL查询语句(经典)
- XML定义文档内容
- 柴门牌RAR文件解压、暴破工具