DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: cuiqingbo
今日帖子: 25
在线用户: 14
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 avman ★☆☆☆☆ -
普通会员
2003/5/18 17:59:48
标题:
数据库高手进来瞧瞧,究竟为何…… 浏览:2880
加入我的收藏
楼主: var 
  st,en:TDateTime;//分别定义起止日期
st:=strtodate(combobox1.Text+'-'+combobox2.Text+'-'+combobox4.Text);
en:=strtodate(combobox5.Text+'-'+combobox6.Text+'-'+combobox7.Text);
//转换从combobox输入的日期
with query1 do
begin
  active:=false;
  close;
  sql.Clear;
  sql.Add('select * from tela where name=''+edit1.Text+'' and stdate between:st and :en order by stdate,startt asc');
//stdate为数据库里日期的字段名。名字符合条件,并且在界定的起止时间内的记录,并按时间排序。
  open;
  active:=true;
end;

这个代码编译通过,但在运行时会有这样的错误:
query1:Field 'st' is of an unknown type.
敢问各位高手该如何解决?谢谢!!
----------------------------------------------
我从迷茫中走来,希望能清晰地离去
作者:
男 nestle_hcl (gigi) ★☆☆☆☆ -
普通会员
2003/5/18 19:25:16
1楼: 应该是你转换时间的时候错了,就是下面几句:
st:=strtodate(combobox1.Text+'-'+combobox2.Text+'-'+combobox4.Text);
en:=strtodate(combobox5.Text+'-'+combobox6.Text+'-'+combobox7.Text);

----------------------------------------------
-
作者:
男 nestle_hcl (gigi) ★☆☆☆☆ -
普通会员
2003/5/18 19:25:49
2楼: 你想想字符串能用+-*/吗???
----------------------------------------------
-
作者:
男 avman ★☆☆☆☆ -
普通会员
2003/5/18 21:21:44
3楼: to:nestle_hcl

原来的在combobox1.Text中的是string,现在用strtodate转换成date了。我不觉得错呀,还请见告。谢谢!

string是不能相加减,但转换成date后就可以了。
----------------------------------------------
我从迷茫中走来,希望能清晰地离去
作者:
男 fhw8234 (fhw8234) ★☆☆☆☆ -
普通会员
2003/5/19 8:17:45
4楼: 'select * from tela where name=''+edit1.Text+'' and stdate between:st and :en order by stdate,startt asc

你的这句话有问题!
:en   :st  是代表参量。
Query1.ParamByName('en').AsDate := en;
Query1.ParamByName('st').AsDate := st 
你把这两句话加到sql语句下面试一试

----------------------------------------------
我爱DELPHI
正在努力学习
按此在新窗口浏览图片
作者:
男 avman ★☆☆☆☆ -
普通会员
2003/5/19 9:35:04
5楼: invalid date format
我试了你的代码,它显示上面的错误提示,程序运行中止。
----------------------------------------------
我从迷茫中走来,希望能清晰地离去
作者:
男 avman ★☆☆☆☆ -
普通会员
2003/5/19 11:51:31
6楼: 我把
Query1.ParamByName('en').AsDate := en;
Query1.ParamByName('st').AsDate := st;
改为这样就行了
Query1.ParamByName('en').AsDateTime := en;
Query1.ParamByName('st').AsDateTime := st;

Thank you fhw8234
----------------------------------------------
我从迷茫中走来,希望能清晰地离去
作者:
男 nestle_hcl (gigi) ★☆☆☆☆ -
普通会员
2003/5/19 12:27:24
7楼:  avman ( ) 
 你是先字符串相减以后才转换成日期格式的!!!
st:=strtodate(combobox1.Text+'-'+combobox2.Text+'-'+combobox4.Text);
en:=strtodate(combobox5.Text+'-'+combobox6.Text+'-'+combobox7.Text);


----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行343.75毫秒 RSS