zoukankan      html  css  js  c++  java
  • Delphi ADOQuery多个参数重复 改编技巧

    今天看了多年前的一个帖子,发现回答不合理,有些还将其归为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 参数的值。
     
     
  • 相关阅读:
    统计MySQL数据库硬盘占用量大小
    zookeeper 集群安装与配置
    On Java 8中文版 英雄召集令
    下划线参数转成驼峰
    在Ubuntu 18.04中安装JDK 8
    GIT和GitHub的使用总结
    Python目录
    selenium代码实例
    Fiddler请求图标含义
    Tensorflow之神经网络
  • 原文地址:https://www.cnblogs.com/jijm123/p/10328490.html
Copyright © 2011-2022 走看看