概述今天看了多年前的一个帖子,发现回答不合理,有些还将其归为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多个参数重复 改编技巧所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
评论列表(0条)