今天看了多年前的一个帖子,发现回答不合理,有些还将其归为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多个参数重复 改编技巧的更多相关文章

  1. Delphi ADOQuery

    Delphi ADOQuery procedure TForm1.Button1Click(Sender: TObject); var A: Array of String;//定义动态数组 Inde ...

  2. Delphi过程函数传递参数的几种方式

    Delphi过程函数传递参数的几种方式  在Delphi过程.函数中传递参数几个修饰符为Const.Var.Out. 另一种不加修饰符的为默认按值传递参数. 一.默认方式以值方式传递参数 proced ...

  3. delphi adoquery的post和UpdateBatch

    delphi adoquery的post和UpdateBatch Post是确认当前的修改,而UpdateBatch是把已经确认但是没有存盘的数据写入数据库当ADOQuery的CursorType是c ...

  4. delphi xe10 FMX 启动参数

    关于 Delphi Xe10 FMX 启动参数  需要在启动窗口前来调用 也就是在bar文件修改 如果参数多可以用json来 uses system.SysUtils; var param: stri ...

  5. 删除delphi组件TStringlist中的重复项目

    https://blog.csdn.net/ozhy111/article/details/87975663 删除delphi组件TStringlist中的重复项目 2019年02月27日 15:41 ...

  6. Delphi ADOQuery连接数据库的查询、插入、删除、修改

    http://blog.csdn.net/chinazhd/article/details/45047777 //查询记录 procedure TForm1.Button1Click(Sender: ...

  7. 关于Delphi中多线程传递参数的简单问题

    http://bbs.csdn.net/topics/390513469/ unit uThread; interface uses Classes; type Th = class(TThread) ...

  8. Delphi函数参数传递 默认参数(传值)、var(穿址)、out(输出)、const(常数)四类

    Delphi的参数可以分为:默认参数(传值).var(传址).out(输出).const(常数)四类 可以对比C/C++的相关知识,类比学习. 1.默认参数是传值,不会被改变,例子 function ...

  9. SQL Server存储过程Return、output参数及使用技巧

    SQL Server目前正日益成为WindowNT操作系统上面最为重要的一种数据库管理系统,随着 SQL Server2000的推出,微软的这种数据库服务系统真正地实现了在WindowsNT/2000 ...

随机推荐

  1. C++基本概念复习

    照着https://www.w3cschool.cn/cpp/,把C++的基础概念顺了一遍,虽然很久没用C++,还是整理一下. #include "stdafx.h"; #incl ...

  2. mybatsi中文乱码问题

    乱码问题:待总结,这里先贴出网友的博客: http://blog.csdn.net/zht666/article/details/8955952

  3. 20155315 2016-2017-2《Java程序设计》课程总结

    学号 2016-2017-2<Java程序设计>课程总结 每周作业链接汇总 预备作业1:第一次写博客,也是第一次用Markdown,具体流程都还不是很熟悉 预备作业2:对做中学的理解及对c ...

  4. 20155316 2016-2017-2 《Java程序设计》第1周学习总结

    学习内容总结 在linux的环境下学习怎么安git.jdk.Intellj IDEA 精读教材1.2章 课前准备部分 git的学习 学习进度 系统学习学到创建版本库-廖雪峰的官方网站 git推送学到最 ...

  5. c++ 时间函数和结构化数据

     time和localtime  数据结构概念  struct关键字  认识数据结构  自定义结构 例:获取当前系统日期和时间;(代码例子) 一.函数: time 函数time()返回的是当 ...

  6. CF 1083 C. Max Mex

    C. Max Mex https://codeforces.com/contest/1083/problem/C 题意: 一棵$n$个点的树,每个点上有一个数(每个点的上的数互不相同,而且构成一个0~ ...

  7. Android 学习1

    使用eclipse做为开发IDE, 导包快捷键 在显红的地方按shift+ctrl+o 另外自动补全使用alt+/

  8. 探寻ASP.NET MVC鲜为人知的奥秘(1):对LESS的支持

    在ASP.NET MVC3中(从那时开始),我们拥有了对js和css等文件的捆绑(Bundling)和压缩(Minification)的能力,这是ASP.NET性能优化工作的一部分. 想一下很久以前, ...

  9. postgresql parallel join example

    CREATE TABLE public.pgbench_accounts_bak ( aid integer NOT NULL, bid integer, abalance integer, fill ...

  10. Spring学习(八)-----Spring注入值到集合类型的例子

    下面例子向您展示Spring如何注入值到集合类型(List, Set, Map, and Properties). 支持4个主要的集合类型: List – <list/> Set – &l ...