Sql.Add('select * from main.db d1,chanpin.db d2 where d1.riqi= :Date');ParamByName('Date').AsDate :=datetimepicker1.date;
试试
试试
解决方案 »
- 空字符串赋值给char型
- 两个我极其不会的问题,谁回答就给分,注意啊,是只要回答就给分啊…谢谢谢谢!
- INSERT INTO 问题! 高手请帮忙!!!!!
- 贴者有分!我正作可视会议系统,请各位帮忙策划策划
- 怎样释放DLL?
- 关于下载的一个问题!
- 向高手请教:我编写的视频传输程序,在运行时客户端,老是出现花屏,请问是什么原因,有何解决的办法???
- 关于Socket的错误:协议家族尚未配置到系统中或没有它的存在迹象(10049).为什么?
- 您好。请问哪个网站有网吧管理程序的delphi源代码????谢谢。
- 怎样设置墙纸(SystemParametersInfo)?
- 急需条码打印控件!
- DelphiBDE造成乱码问题
2,在Query的SQL属性中加入select * from main.db d1,chanpin.db d2 where d1.riqi= :Date;
3,程序中写入以下代码即可
with Query1 do
Close;
Params[0].Value := DateTimePicker1.Date;
Open;
end;
当然,也可以所有步骤都用代码完成
DATE变量,这叫动态SQL,在QUERY里面就能定义SQL参数.
Kylixer(甲克虫) 的程序就是这个道理不过一般都是用字符性的.
你原来可能是日期格式用缺省的,变成字符串时和PARDOX的时间格式
不同.可以先用SQL查出PARADOX的日期在插入的时候要求格式是怎么样的?
再DELPHI有个函数可以把日期照一定的掩码格式转变的吧!
function TForm1.MonthToEnglish(iMonth: Integer): string;
begin
case iMonth of
1 : Result:='JAN';
2 : Result:='FEB';
3 : Result:='MAR';
4 : Result:='APR';
5 : Result:='MAY';
6 : Result:='JUN';
7 : Result:='JUL';
8 : Result:='AUG';
9 : Result:='SEP';
10 : Result:='OCT';
11 : Result:='NOV';
12 : Result:='DEC';
else
Result:='';
end;end;
然后按格式"日-月-年"组织日期,如"22-Jan-2002",一定要用双引号,如
select * from main where rq="22-Jan-2002"
该语句在SQL Explorer中执行正确
当然,就我所知也就Paradox中这样用.
var
sDate,sSqlDate,sSql:string;
iCount:integer;
begin
sDate:=FormatDateTime('yyyymmdd',dtp.DateTime);
sSqlDate:=Copy(sDate,7,2) + '-' + MonthToEnglish(StrToInt(Copy(sDate,5,2))) +
'-' + Copy(sDate,1,4);
sSql:='select * from main where rq<"' + sSqlDate +'"';
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add(sSql);
Query1.Open;
iCount:=Query1.RecordCount;
MessageBox(handle,PChar(IntToStr(iCount)),'提示',MB_OK);
end;