使用 Zeos DBO 連接 PostgreSQL 使用心得 |
|
bestlong
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:126 回覆:734 積分:512 註冊:2002-10-19 發送簡訊給我 |
使用環境:
Delphi 6 ZeosDBO 6.1.5 Patch 2 PostgreSQL 7.4.5 or 8.0.2 原本程式是使用 BDE psqlODBC-07.03.0200 持續運作兩年時間, 累積了可觀的資料量. 在執行效率上有很嚴重的問題, 而且越來越嚴重. 就我個人的感覺, 應該是 psqlODBC 的這一層的問題, 在 TQuery.Open 時會耗用大量的記憶體來暫存資料. 所以在資料庫的來源 Table 有大量資料時情況就會很嚴重. 所以嘗試改用 ZeosDBO 來修改, 安裝方面站上就有前輩發表操作步驟. 但是在使用方法的相關資料並不多, 所以只好以 BDE 的觀念來測試使用. 首先在連接資料庫時是使用 ZConnection 元件, 只要設定以下幾個屬性
1.Protocol : 要連接的資料庫類別
2.HostName : 要連接的資料庫服務主機位址
3.Database : 要使用的資料庫名稱
4.User : 連接資料庫的使用者帳號
5.Password : 連接資料庫的使用者密碼
6.ReadOnly : 設為 False
以上就可以將 Connected 設為 True 測試連接資料庫是否可以成功. 接著加入 ZQuery 將 Connection 設為剛剛的 ZConnection,
然後在 SQL 中設定 select * from table 的查詢命令.再加入 DataSource 連接 ZQuery 還有 DBNavigator , DBGrid. 將 ZQuery.Open 資料就出來了. 不過這時會發現 DBNavigator 的新增、修改、刪除都是 Disable 的狀態. 這是 ZQuery 的特性, 只要 RequestLive 屬性是 False 的狀態下就是 ReadOnly 連 ZTable 也是如此. 所以將 RequestLive 設為 True 後開啟 ZQuery 就可以開始編輯資料. 接著開始使用 CacheUpdate 模式, 在沒有指定 UpdateObject 時更新的處理是 ZQuery 自己處理, 使用 ApplyUpdates, CommitUpdates, CancelUpdates 來控制異動快取緩衝區. 然後一但加入了 ZUpdateSQL 元件並設為 ZQuery.UpdateObject 之後, 當 ZQuery.ApplyUpdates 時的更新就是以 ZUpdateSQL 的 InsertSQL, ModifySQL, DeleteSQL 來處理, 這部份的觀念與 BDE 的差不多. 雪龍
http://bestlong.no-ip.com/
學海無涯覺無盡,勤做筆記防失憶 發表人 - bestlong 於 2005/04/20 14:36:36 發表人 - bestlong 於 2005/04/20 15:41:34
------
http://blog.bestlong.idv.tw/ http://www.bestlong.idv.tw/ http://delphi-ktop.bestlong.idv.tw/ |
bestlong
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:126 回覆:734 積分:512 註冊:2002-10-19 發送簡訊給我 |
Zoes DBO-6.1.5 版目前的已知問題, 原文如下:
1.Because of the limitations of dblibrary only the first 255 char is returned for char and varchar columns. 2.LargeInt fields are not completely supported in Delphi 4,5 and C++ Builder 4,5. 3.Sybase does not support procedure parameter type query. Though a workaround was possible for ASE12.5 and above. 4.Oracle provider for ADO is case sensitive for the table name when getting schema columns, the MS version is working right. Identifier convertion must be reviewed for ADO. 5.If you are using dbgrid, all the records will be fetched because of a call to recordcount (in scrollbar). You can avoid this behavior if you turn on the Filtered property. In this case you can achieve fast open even on bigger resultsets. 6.Midas IProviderSupport interface is not completely supported. It may cause problems with TDatasetProvider and TClientDataset. Full support for IProviderSupport interface will be added to version 6.2. 官方網站
http://www.zeoslib.net
http://sourceforge.net/projects/zeoslib/ 站內前輩發表安裝說明
http://delphi.ktop.com.tw/topic.php?topic_id=58356 雪龍
http://bestlong.no-ip.com/
學海無涯覺無盡,勤做筆記防失憶 發表人 - bestlong 於 2005/04/20 14:55:26
------
http://blog.bestlong.idv.tw/ http://www.bestlong.idv.tw/ http://delphi-ktop.bestlong.idv.tw/ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |