用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錯誤。這裡也表明一個問題:高版本的軟件不一定就好,就能解決問題。希望碰到同樣問題的人,早些解決問題,少走些彎路。