vfp的日期型字段(200分)

  • 主题发起人 主题发起人 mumuwoyou
  • 开始时间 开始时间
M

mumuwoyou

Unregistered / Unconfirmed
GUEST, unregistred user!
有一个以vfp为底层数据库,以delphi为开发工具,现要查询某一日期或一个日期段的数据,
如select * from 表名 where 日期型字段={02/23/2001},在sql explorer 查询成功,而在delphi
的程序中,
decodedate(date,year,month,day)'
query.sql.clear;
query.sql.add('select *');
query.sql.add('from 表名 ');
query.sql.add('where 日期型字段={'+inttostr(month)+'/'+inttostr(day)+'/'+inttostr(yesr)+'}');
query.close;
query.open;
发生错误,
而decodedate(date,year,month,day)'
query.sql.clear;
query.sql.add('select *');
query.sql.add('from 表名 ');
query.sql.add('where 日期型字段=:dateqry');
query.parambyname('dateqry').asdatetime:=date;
query.close;
query.open;
表名 找不得参数'dateqry'
而query.params[0].asdatetime:=date;
发生索引错误;
告诉我到底要如何查询vfp的日期型字段(包括某日或某日期段betweem mm/dd/yyyy and mm/dd/yyyy)
 
query.parambyname('dateqry'):=date;行不行?
 
procedure TForm1.Button1Click(Sender: TObject);
var
year, month, day : word;
begin
query1.sql.clear;
query1.sql.add('select *');
query1.sql.add('from p.dbf ');
query1.sql.add('where 参工时间=:dateqry');
query1.parambyname('dateqry').asdatetime:=StrToDate('1966-07-01');
query1.close;
query1.open
end;

我的刚试过,没问题。
 
我也认为像后一种写法不会有错的,如果还是不行的话那直是怪了,你用的是BDE的VFP驱动
吗?
 
你用的是哪个版本的VFP?不要用DBE连接VFP,用ADO吧。
在Local SQL 中日期字段不是用‘{}’括起来的,而是用‘”’;
比如:“12/30/2000”。
 
多人接受答案了。
 
后退
顶部