用Delphi開(kāi)發(fā)基于ORACLE平臺(tái)的數(shù)據(jù)庫(kù)管理信息系統(tǒng)過(guò)程中,連接ORACLE后臺(tái)一般考慮兩種方式,一種是用ORACLE公司提供的驅(qū)動(dòng),用ODBC方式來(lái)連接;一種是繞過(guò)ODBC,用BDE直連方式。
在ORACLE客戶端配置連接字符串后,并在BDE中創(chuàng)建一個(gè)ORACLE的別名,并把該別名的SERVER_NAME設(shè)成ORACLE的連接串,然后就可以通過(guò)這個(gè)別名來(lái)訪問(wèn)ORACLE了)。本文主要說(shuō)說(shuō)后一種連接方式。
我用Delphi4C/S(安裝了對(duì)應(yīng)的補(bǔ)丁程序)在開(kāi)發(fā)基于TURBOLINUX+ORACLE8.1.6的住房補(bǔ)貼管理系統(tǒng)過(guò)程中,就是采用的 BDE直連方式,BDE升級(jí)到了5.1.1,碰到的問(wèn)題如下:只要數(shù)據(jù)表中日期字段有空值,那么與該日期字段相關(guān)的所有的查詢就會(huì)出現(xiàn)如下錯(cuò)誤?(見(jiàn)圖 1)
對(duì)應(yīng)的SQL語(yǔ)句在SQLPLUS下沒(méi)有問(wèn)題,這只能說(shuō)明是BDE本身的問(wèn)題。我在Borland的主頁(yè)上下載了BDE5.1.1針對(duì) ORACLE8以上版本的補(bǔ)丁程序sqlora8.dll,版本是5.1.1.2,可問(wèn)題依舊?!我詢問(wèn)了中國(guó)Borland公司,沒(méi)有結(jié)果。無(wú)奈之下, 我把程序拷貝到同事的機(jī)子試了一下,居然沒(méi)有出錯(cuò)??!檢查了同事機(jī)子的SQLORA8.DLL版本,發(fā)現(xiàn)版本是5.0.1.22。我把這個(gè)文件拷貝替換 掉,問(wèn)題解決。后來(lái),我挨個(gè)測(cè)試別的SQLORA8.DLL版本,都存在BDE錯(cuò)誤。這里也表明一個(gè)問(wèn)題:高版本的軟件不一定就好,就能解決問(wèn)題。希望碰 到同樣問(wèn)題的人,早些解決問(wèn)題,少走些彎路。
更多信息請(qǐng)查看IT技術(shù)專欄