前幾天,公司原本一個一直運行正常ASP查詢程序,安裝到一個客戶那邊突然不能運行了。客戶使用的數據庫是 Informix,服務器是 Windows2000 Professional 簡體中文,而以前我們一直使用測試的數據庫是MS-SQLServer。 在定位查詢結果頁時(即設置 ADODB.Recordset.AbsolutePage 屬性時)報錯,提示大意:不支持的游標類型。這是很久以前別人做的東東,而我也有一年多沒碰過 ADO 了,因此只能依稀感覺可能是 ADO.Recordset 游標的問題,找到指定 Recordset 對象的 Open 處代碼,發現其沒有顯式定義 Recordset 的游標位置(CursorLocation),嗯,如果沒記錯的話,ADO.Recordset 的默認游標位置是服務器模式的。將 Recordset 的游標位置設為客戶端以及游標類型為靜態。刷新頁面,報錯,提示不支持的字符集。找到出錯位置為 Recordset 對象的 Open 處。郁悶(半小時)…… 發現其是在ASP腳本中直接使用SQL查詢語句,并且其中使用 AS 關鍵字將字段名別稱為中文。嗯?可能就是因為這個原因罷,于是取消掉中文別稱。再刷新,成功!
我對 Informix 數據庫完全陌生,所以不知道為什么會出現這樣的情況,但是這足以提醒了我,要做到應用程序跨多數據庫平臺并不是想象中那么一路順暢的,至少很多的細節需要考慮和處理,而這是需要相當經驗和技巧的。在公司接下來的一個新項目中,其要求一定要支持多種數據庫(Oracle、SQLServer、DB2),并且中間層能在 Unix、Linux 和 Windows 平臺上運行,看來我需要更加謹慎的態度來預估我的技術設計方案了。
|