Delphi ADOQuery多个参数重复 改编技巧(原创)

来源:互联网 发布:网络用语你有毒的意思 编辑:程序博客网 时间:2024/05/16 05:10
ttp://topic.csdn.net/t/20060719/17/4891215.html#

今天看了多年前的一个帖子,发现回答似乎不合理,有些还将其归为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;

可以了.

==================Anonymous编写=======QQ165622044================================

但对于非常多的参数的时候这样就麻烦了,不如修改一下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 参数的值

原创粉丝点击