用Delphi开发基于Oracle平台的数据库治理信息系统过程中,连接ORACLE后台一般考虑两种方式,一种是用ORACLE公司提供的驱动,用ODBC方式来连接;一种是绕过ODBC,用BDE直连方式(
在ORACLE客户端配置连接字符串后,并在BDE中创建一个ORACLE的别名,并把该别名的SERVER_NAME设成ORACLE的连接串,然后就可以通过这个别名来访问ORACLE了)。本文主要说说后一种连接方式。
我用Delphi4C/S(安装了对应的补丁程序)在开发基于TURBOlinux+ORACLE8.1.6的住房补贴治理系统过程中,就是采用的BDE直连方式,BDE升级到了5.1.1,碰到的问题如下:只要数据表中日期字段有空值,那么与该日期字段相关的所有的查询就会出现如下错误?(见图1)
对应的SQL语句在SQLPLUS下没有问题,这只能说明是BDE本身的问题。我在Borland的主页上下载了BDE5.1.1针对ORACLE8以上版本的补丁程序sqlora8.dll,版本是5.1.1.2,可问题依旧?!我询问了中国Borland公司,没有结果。无奈之下,我把程序拷贝到同事的机子试了一下,居然没有出错!!检查了同事机子的SQLORA8.DLL版本,发现版本是5.0.1.22。我把这个文件拷贝替换掉,问题解决。后来,我挨个测试别的SQLORA8.DLL版本,都存在BDE错误。这里也表明一个问题:高版本的软件不一定就好,就能解决问题。希望碰到同样问题的人,早些解决问题,少走些弯路。