unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB, Grids, DBGrids; type
TForm1 = class(TForm)
Button1: TButton;
ADOQuery1: TADOQuery;
Memo1: TMemo;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; var
Form1: TForm1; implementation var
tfdate: string; //全局变量和 sql语句里的变量相同,没有冲突的 {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject);
const
FROMWhereStr = ' from tbtest WHERE tfDate=:tfDate';
ParamBuyDateTime = 'tfDate';
begin
ADOQuery1.SQL.Text := 'select * ' + FROMWhereStr ;
ADOQuery1.Parameters.ParamByName(ParamBuyDateTime).Value := '2015-05-15 20:34:00'; //用参数对象,字符串或者日期时间类型都可以
ADOQuery1.Open;
Memo1.Lines.Add( ADOQuery1.Parameters.ParamByName(ParamBuyDateTime).Value + ' 行' + IntToStr(ADOQuery1.RecordCount));
end; procedure TForm1.Button2Click(Sender: TObject);
const
FROMWhereStr = ' from tbtest WHERE tfDate < #2015-05-15 20:34:00#';
//字符串拼接的SQL里 必须 加# 好像不行,因为时间部分 有 : Delphi 会认为是 变量
//只有 是日期字符2015-05-15,就是没有时间部分 ,才能使用 #
ParamBuyDateTime = 'tfDate'; begin ADOQuery1.SQL.Text := 'select * ' + FROMWhereStr ;
ADOQuery1.Open;
Memo1.Lines.Add( ADOQuery1.SQL.Text + ' 行' + IntToStr(ADOQuery1.RecordCount)); end;
//http://www.delphitop.com/html/shujuku/2180.html
請參考: http://www.delphi32.com/info_facts/faq/faq_932.asp 由於動態給定 sql command, 其中的參數並未建立, 請加入
    Query1.Params.ParseSQL(Query1.SQL.Text , True);
試試看!!
end.

ADOQuery1.Parameters.Clear; //这2句 最好成对出现,有这个,必须要有下面的或者    ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text := 
 ADOQuery1.Parameters.ParseSQL(ADOQuery1.SQL.Text, True); //这2句 最好成对出现 ,有这个不一定要有上面的


ADOQuery1.Parameters.Clear;
ADOQuery1.SQL.Clear;//为何经常先有这句?

//给Text属性直接赋值,不是也可以更新内容吗?
ADOQuery1.SQL.Text := 'SELECT * ' + FROMWhereStr ;//FROM tbTOPMTrade WHERE BuyDateTime<:BuyDateTime';

ShowMessage( IntToStr( ADOQuery1.Parameters.Count ));

如果没有ADOQuery1.SQL.Clear;

运行,第一次点击 按钮,正常,参数个数是1,第二次点击按钮 ,参数个数是0。

ADO SQL delete 日期条件参数的更多相关文章

  1. 使用Sql按日期条件查询

    --查询当天(1: select * from ShopOrder where datediff(day,ordTime,getdate()-1)=0 --查询当天(2:select * from i ...

  2. SQL 查询--日期条件(今日、昨日、本周、本月。。。) (转)

    主要用到sql 函数 DATEDIFF(datepart,startdate,enddate) sql 语句,设 有 数据库表 tableA(日期字段ddate) ——查询 今日 select * f ...

  3. 动态SQL中 实现条件参数 varchar类型的参数名称 以及模糊查询实现

    set @strSQL='select * from testtable AS P WHERE P.Type='+@PType+' and P.PName ='''+@PName+''' and P. ...

  4. sql server 日期

    在SQL Server数据库中,SQL Server日期时间格式转换字符串可以改变SQL Server日期和时间的格式,是每个SQL数据库用户都应该掌握的.本文我们主要就介绍一下SQL Server日 ...

  5. SQL Server日期时间格式转换字符串详解 (详询请加qq:2085920154)

    在SQL Server数据库中,SQL Server日期时间格式转换字符串可以改变SQL Server日期和时间的格式,是每个SQL数据库用户都应该掌握的.本文我们主要就介绍一下SQL Server日 ...

  6. SQL Server日期时间格式转换字符串

    在SQL Server数据库中,SQL Server日期时间格式转换字符串可以改变SQL Server日期和时间的格式,是每个SQL数据库用户都应该掌握的.本文我们主要就介绍一下SQL Server日 ...

  7. SQL Server日期和时间的格式

    在SQL Server数据库中,SQL Server日期时间格式转换字符串可以改变SQL Server日期和时间的格式,是每个SQL数据库用户都应该掌握的.本文我们主要就介绍一下SQL Server日 ...

  8. SQL Server日期时间格式转换字符串详解

    本文我们主要介绍了SQL Server日期时间格式转换字符串的相关知识,并给出了大量实例对其各个参数进行对比说明,希望能够对您有所帮助. 在SQL Server数据库中,SQL Server日期时间格 ...

  9. 在论坛中出现的比较难的sql问题:46(日期条件出现的奇怪问题)

    原文:在论坛中出现的比较难的sql问题:46(日期条件出现的奇怪问题) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所以,觉得有 ...

随机推荐

  1. 在Visual C#中使用XML指南之读取XML

    网站:http://www.yesky.com/155/1915155all.shtml#p1915155  

  2. bzoj 3343: 教主的魔法

    Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 924  Solved: 402[Submit][Status][Discuss] Descriptio ...

  3. Harmonic Number (调和级数+欧拉常数)题解

    Harmonic Number In mathematics, the nth harmonic number is the sum of the reciprocals of the first n ...

  4. VS中sln和suo的区别

    1.调试程序出现这个错误an error occurred while validating 解决方案:http://stackoverflow.com/questions/8648428/an-er ...

  5. 论文笔记之:UNSUPERVISED REPRESENTATION LEARNING WITH DEEP CONVOLUTIONAL GENERATIVE ADVERSARIAL NETWORKS

    UNSUPERVISED REPRESENTATION LEARNING WITH DEEP CONVOLUTIONAL GENERATIVE ADVERSARIAL NETWORKS  ICLR 2 ...

  6. junit中test注解测试使用案列解析二

    本文原创,转载请注明出处 在上文中,已经简单的解析了junit中test注解的使用方法,今天在进行test测试时,遇到了一个异常,于是想深 入的研究一下. 还原一下今天的异常代码: @Service ...

  7. Cocos2d-x学习笔记(一)环境搭建与项目创建

    可运行的代码可以说明一切问题. 环境需安装VS201x + Python2.7 + Cocos2d-x-2.2.5.(Linux下参考链接:http://www.cocos2d-x.org/wiki/ ...

  8. 二分检索函数lower_bound()和upper_bound()

    二分检索函数lower_bound()和upper_bound() 一.说明 头文件:<algorithm> 二分检索函数lower_bound()和upper_bound() lower ...

  9. nginx File not found 错误

    使用php-fpm解析PHP,"No input file specified","File not found"是令nginx新手头疼的常见错误,原因是php ...

  10. Mysql错误: Lock wait timeout exceeded 解决办法

    一.临时解决办法: 执行mysql命令:show full processlist; 然后找出插入语句的系统id 执行mysql命令:kill id 或 首先,查看数据库的进程信息: show ful ...