UniDAC使用教程(五):在不穩定的網絡中工做

下載UniDAC最新版本數據庫

Universal Data Access Components (UniDAC)是一款通用數據庫訪問組件,提供了多個數據庫的直接訪問,如針對Windows的Delphi, C++Builder, Lazarus (以及 Free Pascal) , Mac OS X, iOS, Android, Linux和64和32位的FreeBSD等等。咱們將長期的經驗集於這個小組件,提供統一的數據庫鏈接訪問(如oracle、微軟SQL等等)。這意味着您能夠在您的項目之間輕鬆地切換不一樣的數據庫,以及建立跨數據庫應用程序接口。服務器

建議在不穩定網絡中工做時使用如下設置:網絡

1oracle

2ui

3spa

4code

5接口

6事件

TCustomDAConnection.Options.LocalFailover = True事務

TCustomDAConnection.Options.DisconnectedMode = True

TDataSet.CachedUpdates = True

TCustomDADataSet.FetchAll = True

TCustomDADataSet.Options.LocalMasterDetail = True

AutoCommit = True

這些設置最小化了對服務器的請求數。使用TCustomDAConnection.Options.DisconnectedMode可使數據集在沒有活動鏈接的狀況下工做。它最大限度地減小了服務器資源的使用,並下降了鏈接中斷的可能性。也就是說,在這種模式下,若是再也不須要鏈接,鏈接將自動關閉。可是每一個顯式操做都必須顯式完成。這意味着每一個顯式鏈接後面都必須是顯式斷開鏈接。

將FetchAll屬性設置爲True容許在光標打開後獲取全部數據並關閉鏈接。若是您使用的是主/細節關係,建議將LocalMasterDetail選項設置爲True。

不建議顯式準備查詢。使用CachedUpdates模式編輯數據集數據。使用TCustomDADataSet.Options.UpdateBatchSize屬性減小對服務器的請求數。

若是鏈接中斷,則會發生致命錯誤,若是知足如下條件,則會引起OnConnectionLost事件:

  • 沒有活動的事務;
  • 沒有打開和未獲取的數據集;
  • 沒有顯式準備的數據集或SQL。

若是用戶不拒絕建議的retryMode參數值(或不使用OnConnectionLost事件處理程序),則UniDAC能夠隱式執行如下操做:

1

2

3

Connect;

DataSet.ApplyUpdates;

DataSet.Open;

即當鏈接中斷時,執行隱式從新鏈接,並從新執行相應的操做。咱們建議在事務中包裝其餘操做,並本身完成它們的從新執行。

因爲鏈接持續時間縮短,在Disconnected模式下使用池能夠加快大多數操做。

相關文章
相關標籤/搜索