Delphi ADOQuery多个参数重复 改编技巧

Delphi ADOQuery多个参数重复 改编技巧,第1张

概述今天看了多年前的一个帖子,发现回答不合理,有些还将其归为delphi的bug.其实主要是没有灵活应用参数。 ADOQUERY查询时,这样不行,结果不正确。  WITH ADOQUERY1 DO  BEGIN    CLOSE;SQL.CLEAR;    SQL.ADD(‘SELECT * FROM TABLE1 WHERE TA001=:MONTH AND TA002=:MONTH‘);    P 今天看了多年前的一个帖子,发现回答不合理,有些还将其归为delphi的BUG.其实主要是没有灵活应用参数。 ADOquery查询时,这样不行,结果不正确。  WITH ADOquery1 DO  BEGIN    CLOSE;sql.CLEAR;    sql.ADD(‘SELECT * FROM table1 WHERE TA001=:MONTH AND TA002=:MONTH‘);    ParaMETERS.ParamByname(‘MONTH‘).Value :=EDIT1.TEXT;    OPEN;  END;  改成如下就可以了。 WITH ADOquery1 DO    BEGIN    CLOSE;sql.CLEAR;    sql.ADD(‘SELECT * FROM table1 WHERE TA001=:MONTH1 AND TA002=:MONTH2‘);    ParaMETERS.ParamByname(‘MONTH1‘).Value :=EDIT1.TEXT;    ParaMETERS.ParamByname(‘MONTH2‘).Value :=EDIT1.TEXT;    OPEN;  END;  但对于非常多的参数的时候这样就麻烦了,还不如修改一下SQL语句 SELECT ProductID 产品编号,Productname 产品名称,Place 生产厂,DM_ifcolor 底磨色,SM_ifcolor 手磨色,BL*OrderAmount 备料,         ZC*OrderAmount 制材,         BT*OrderAmount 补土,         JZ*OrderAmount 机作,         JM*OrderAmount 机磨,         SM*OrderAmount 手磨,         QA*OrderAmount 前安,         PQ*OrderAmount 喷漆,         DM*OrderAmount 底磨,         MM*OrderAmount 面磨,         HA*OrderAmount 后安,         BZ*OrderAmount 包装 FROM (select :OrderAmount OrderAmount) b,TJ_ForecastMaster WHERE OrderID = :OrderID 上面用到的 OrderAmount就是:OrderAmount 参数的值。 总结

以上是内存溢出为你收集整理的Delphi ADOQuery多个参数重复 改编技巧全部内容,希望文章能够帮你解决Delphi ADOQuery多个参数重复 改编技巧所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1273951.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存