bde不支持oracle的Timestamp类型?(100分)

  • 主题发起人 主题发起人 hophy
  • 开始时间 开始时间
H

hophy

Unregistered / Unconfirmed
GUEST, unregistred user!
我的oracle数据有一个表的字段是timestamp类型,用TQuery或TTable打开该表都会出“Invalid field type”的错,知道是什么原因吗?如果在SQL语句中用to_char函数将此字段转换一下,数据可以正常读出,但我又不想这样做,有什么办法能直接读出该字段的值?
 
试试....AsString?估计是需要用to_char转换的吧?
 
query或table一open就出错,根本不可以执行asString操作
 
或者专门的Oracle控件
 
但由于历史原因,必须要用BDE控件。真的没有办法了吗?
 
我觉得既然可以用to_char函数,为什么不想这样做呢?或者你把那个字段类型改成Date吧
 
办法当然有,更改TQuery或TTable的代码,使其支持timestamp
 
我做的是一个通用的工具,接收用户的sql然后执行,怎么可能知道用户哪个字段是timestamp类型,然后用to_char函数转换呢!
 
你既然做的是一个通用的工具,那就要考虑到各种可能,不论是用户方面的,还是数据库方面的,比如你用try ... except ... end来捕获数据库或控件返回的异常,是字段类型的问题就应该做出处理,比如用to_char...再尝试一次等等,总之:通用工具不是这么好做的,你如果连这种异常都不能处理好,就不要开发这种工具,开发出来也是吃力不讨好的事情,试想一下:一个所谓的通用工具老是出错,还有人会去用吗?
 
我的程序当然会对异常做这样的处理,我现在是想解决这个问题,才把出错的信息写出来,如果不解决这个问题,只是捕捉了异常,数据还是显示不了,那工具还有什么用!
 
我的BDE没有问题啊。
 
我用BDE查看DB2数据库的timestamp字段也没有问题,但查oracle的就不行,9i和10g都出错
 
反正你客户端都装了oracle 客户端了 那就 干脆 ODBC 使用oracle的数据引擎
 
to wyb_506:具体怎么做法,给个简单例子行吗?
 
后退
顶部