IntraWeb中的日期查询(50分)

  • 主题发起人 主题发起人 c2008
  • 开始时间 开始时间
C

c2008

Unregistered / Unconfirmed
GUEST, unregistred user!
sql.Add('select * from JBXX where Sdate>=:xdate and sdate<=:ydate');
parambyname('xdate').asdate:=TIWDTPdate1.date;
parambyname('ydate').asdate:=TIWDTPdate2.date;
无法通过,提示parambyname错误,该如何解决(该代码在单机和没用到Iw制作的程序中正常)?
在线等待中,问题解决立即给分
 
什么数据库? 用ADO还是BDE?
数据库中定义的字段类型是 "日期型" 还是 "日期时间型"?

//另外,问一下 TIWDTPdate 这个控件怎么才能得到?D7中IW好像没有这个东东。 望楼主指点。
//帮忙提前。
 
使用的是ado,TIWDTPdate在IW5中已经带了
是access的数据库,日期时间型的
delphi7本身的好象没有,重新下载后再安装
 
>>是access的数据库,日期时间型的
ADO的参数使用中没有 Asdate 、AsDatetime这样的。
这样试试 Parameters.ParamByName('BorrowDate').Value:=TIWDTPdate1.date;
 
没有办法哦,一开始就提示Parameters不认识哦ParamByName也是
包括datetostr和formatdatetime都提示出错,不知道是不是要加什么东西,还是IW不支持,
我的是IW的appliction的程序
 
uses ADODB 或 DB ,有没有?

而formatdatetime 是必须要uses SysUtils 这个单元的。IW中默认的单元中没有这个,需要加上。
 
Access数据库的日期前要加上“#”,
 
都加了哦,还是不行
 
兄弟,昨天在D6中装了IW5,果然很爽。 比D7中多了很多东东。
你的这个问题这样可以解决的:
uses SysUtils;
....
sql.Add('select * from JBXX where Sdate>=:xdate and sdate<=:ydate');
Parameters.ParamByName('xdate').Value:=DateToStr(TIWDTPdate1.date);
Parameters.ParamByName('ydate').Value:=DateToStr(TIWDTPdate2.date);

用 DateToStr 把日期转化为字符来比较 就可以了。
 
后退
顶部