用 BDE 連接 MSSQL2005 碰到 DBMemo 內容亂碼問題 |
尚未結案
|
bestlong
站務副站長 發表:126 回覆:734 積分:512 註冊:2002-10-19 發送簡訊給我 |
近來在處理資料庫升級
資料庫是由SQL6.5用SQL2000的升級精靈異機升級到SQL2000 然後在SQL2000離線後複製到SQL2005附加上去的 而原本程式在MSSQL6.5與MSSQL2000時環境下操作都正常 不過當改連接到MSSQL2005後發現有部分資料的DBMemo內容卻出現亂碼的狀況 連日來的找尋問題的癥結,終於歸納出最簡單重現問題的方式 建立一個新專案用 BDE 的 TDatabase TTable 連接資料庫 當 TableName 屬性設定 TBName 時就 DBMemo 就會有部分資料顯示亂碼 若 TableName 屬性設定 dbo.TBName 就會完全正常 以上狀況在D5,D6,D7結果都一樣 想要解決的話有兩個方向: 1.改用其它資料庫元件,這樣整個系統要重寫,風險最大。 2.重設所有資料元件 Table.TableName屬性以及 Query.SQL 屬性的語法,風險次大。 目前先繼續尋找比較簡易的解決方法中,不知是否有人碰過這個問題呢?
------
http://blog.bestlong.idv.tw/ http://www.bestlong.idv.tw/ http://delphi-ktop.bestlong.idv.tw/ 編輯記錄
bestlong 重新編輯於 2007-09-06 13:17:30, 註解 無‧
|
Mickey
版主 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
|
bestlong
站務副站長 發表:126 回覆:734 積分:512 註冊:2002-10-19 發送簡訊給我 |
使用 TQuery 就沒有亂碼問題,不過使用 TQuery 就會碰到 invalid blob handle in record buffer 的問題
因為資料量很多所以 BLOB CACHE 會被塞爆,雖然可以加大 CACHE 設定,卻會導致執行速度會超級慢。 目前的想法只能暫時升級到 SQL2000 就好,然後開始全面改用 ADO 處理 修改完畢後再升級到 SQL2005 吧。
------
http://blog.bestlong.idv.tw/ http://www.bestlong.idv.tw/ http://delphi-ktop.bestlong.idv.tw/ |
Mickey
版主 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
invalid blob handle in record buffer 的問題
不是很確定...記憶力不好... 好像...用 Transaction 包裝...可以避免之 另外....我記得...似乎 TTable 即使用 TDatabase...也會有..."獨立"..的 Session(從DB "select count(*) from master.dbo.sysprocesses")....盡量避免之 ===================引 用 bestlong 文 章=================== 使用 TQuery 就沒有亂碼問題,不過使用 TQuery 就會碰到 invalid blob handle in record buffer 的問題 因為資料量很多所以 BLOB CACHE 會被塞爆,雖然可以加大 CACHE 設定,卻會導致執行速度會超級慢。 目前的想法只能暫時升級到 SQL2000 就好,然後開始全面改用 ADO 處理 修改完畢後再升級到 SQL2005 吧。 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |