在SQL中使用正常的查询语句,在Access数据库中使用报错。字段内容都一样。
时间:2011-09-19
来源:互联网
在SQL中使用正常的查询语句,在Access数据库中使用报错。字段内容都一样。请大侠帮我看看要改哪些地方?
Delphi(Pascal) code
Delphi(Pascal) code
//===========================SQL2000版======================================= with dtm.QryExec do begin Close; SQL.Clear; SQL.add('insert into LiuShui(pzh,sfbz,UserName,YsMoney,ll,KxDate) '); SQL.add('select a.Pzh,''收'',a.h_UName,a.h_Money,b.ll,convert(varchar(100),a.h_date,23)) from hdinfo a join dkinfo b on (a.h_kxPzh=b.pzh) where a.Lrdate between :TimeBegin and :TimeEnd'); Parameters.ParamByName('TimeBegin').Value:=DateToStr(DateTime1.Date); Parameters.ParamByName('TimeEnd').Value:=DateToStr(DateTime2.Date+1); execsql; end; //===========================Access版======================================= with dtm.QryExec do begin Close; SQL.Clear; SQL.add('insert into LiuShui(pzh,sfbz,UserName,YsMoney,ll,KxDate) '); SQL.add('select a.Pzh,''收'',a.h_UName,a.h_Money,b.ll,str(a.h_date) from hdinfo a join dkinfo b on (a.h_kxPzh=b.pzh) where a.Lrdate between :TimeBegin and :TimeEnd'); Parameters.ParamByName('TimeBegin').Value:=DateToStr(DateTime1.Date); Parameters.ParamByName('TimeEnd').Value:=DateToStr(DateTime2.Date+1); execsql; end;
作者: yangqi613 发布时间: 2011-09-19
应该将报错的提示贴出来。
作者: gzzai 发布时间: 2011-09-19
是不是Access不能用join on 的语句? 不知道在Access要怎么用才能达到上面sql的功能。
回二楼,就这么两句查询的代码啊,错误提示被try过滤掉了的。
回二楼,就这么两句查询的代码啊,错误提示被try过滤掉了的。
作者: yangqi613 发布时间: 2011-09-19
UserName这个字段改个名字看看。
或者是将str(a.h_date)改成 CStr(a.h_date)看看呢。
或者是将str(a.h_date)改成 CStr(a.h_date)看看呢。
作者: xmfan2000 发布时间: 2011-09-19
a.Lrdate between ? and ?');
作者: ACMAIN_CHM 发布时间: 2011-09-19
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28