ClinetDataSet+DBExpress+SQL2000的(日期查询问题)

plusning 2009-07-03 09:19:32
最近发现DBExpress的控件搭配TDataSetProvider和TClientDataSet连接SQLServer2000数据库,进行查询含日期字段数据集时,在有RAD环境下正常;而在没有RAD环境下则出错,错误信息是:“Operation not applicable”
查了半天,没查出问题所在
另外做了几个相关测试,测试结果如下:(以下均指SQLServer2000数据库)
RAD2009环境下:
(一)查询语句:"SELECT GETDATE() AS A" 或 "SELECT CAST(GETDATE() AS DATETIME) AS A" 或 "SELECT CAST(GETDATE() AS SMALLDATETIME) AS A"
(1)TSQLConnection+TSQLQuery 正常
(2)TSQLConnection+TSQLQuery+TDataSetProvider+TClientDataSet 正常
(3)TDatabase+TQuery+TDataSetProvider+TClientDataSet 正常
无RAD环境下:
(4)TSQLConnection+TSQLQuery 正常
(5)TSQLConnection+TSQLQuery+TDataSetProvider+TClientDataSet 出错
(6)TDatabase+TQuery+TDataSetProvider+TClientDataSet 正常
(二)查询语句:"SELECT CAST(GETDATE() AS VARCHAR) AS A"
(7)TSQLConnection+TSQLQuery 正常
(8)TSQLConnection+TSQLQuery+TDataSetProvider+TClientDataSet 正常
(9)TDatabase+TQuery+TDataSetProvider+TClientDataSet 正常
无RAD环境下:
(10)TSQLConnection+TSQLQuery 正常
(11)TSQLConnection+TSQLQuery+TDataSetProvider+TClientDataSet 正常
(12)TDatabase+TQuery+TDataSetProvider+TClientDataSet 正常
以上十二个测试中,唯独(5)出现“Operation not applicable”
...全文
145 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
plusning 2009-07-06
  • 打赏
  • 举报
回复
问题已经解决,原来是midas.dll在作怪
我用的虚拟机中的midas.dll的版本太老了,我好像在哪里有见到要带上midas.dll,但发现虚拟机中有midas.dll就没注意这个,后来实在没办法了,在一次不经意间发现两个midas.dll的修改时间上不同,这才想起可能和这个版本有关,后来替换试了下果然可以正常运作了.
谢谢以上各位的捧场~~~~~~~~~~
Waiting4you 2009-07-03
  • 打赏
  • 举报
回复
居然有这种事?楼主总结测试得不错,可以再试试(5)的情况里插入TSQLMonitor监视SQL的执行情况,也许能找到出错原因。
plusning 2009-07-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 efeeler1925 的回复:]
数据库设置对否?
[/Quote]

----------------------
TSQLConnection+TSQLQuery是正常的那么数据库设置就没有问题!
plusning 2009-07-03
  • 打赏
  • 举报
回复
简单的说明问题如下:
(1)TSQLConnection+TSQLQuery
(2)TSQLConnection+TSQLQuery+TDataSetProvider+TClientDataSet
(3)TDatabase+TQuery
(4)TDatabase+TQuery+TDataSetProvider+TClientDataSet

(5)"SELECT GETDATE() AS A"
(6)"SELECT CAST(GETDATE() AS DATETIME) AS A"
(7)"SELECT CAST(GETDATE() AS VARCHAR) AS A"

有RAD环境中:
(1)+(5) 正常
(1)+(6) 正常
(1)+(7) 正常

(2)+(5) 正常
(2)+(6) 正常
(2)+(7) 正常

(3)+(5) 正常
(3)+(6) 正常
(3)+(7) 正常

(4)+(5) 正常
(4)+(6) 正常
(4)+(7) 正常

无RAD环境中:
(1)+(5) 正常
(1)+(6) 正常
(1)+(7) 正常

(2)+(5) 出错
(2)+(6) 出错
(2)+(7) 正常

(3)+(5) 正常
(3)+(6) 正常
(3)+(7) 正常

(4)+(5) 正常
(4)+(6) 正常
(4)+(7) 正常

-------------------------------------
但不知道原因在哪?
efeeler1925 2009-07-03
  • 打赏
  • 举报
回复
数据库设置对否?

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧