今天看了多年前的一个帖子,发现回答不合理,有些还将其归为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多个参数重复 改编技巧
发布时间:2020-12-15 09:53:21 所属栏目:大数据 来源:网络整理
导读:今天看了多年前的一个帖子,发现回答不合理,有些还将其归为delphi的bug.其实主要是没有灵活应用参数。 ADOQUERY查询时,这样不行,结果不正确。? WITH ADOQUERY1 DO? BEGIN? ? CLOSE;SQL.CLEAR;? ? SQL.ADD(‘SELECT * FROM TABLE1 WHERE TA001=:MONTH?AND T
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |