1. 程式人生 > >求助 delphi ADO元件的 CursorLocation屬性設定為 clUseServer 用法 [問題點數:20分]

求助 delphi ADO元件的 CursorLocation屬性設定為 clUseServer 用法 [問題點數:20分]

我有個管理系統,所有ADOQUERY元件的 CursorLocation屬性設定為 clUseClient,一直執行正常,我嘗試全部設定為clUseServer, 系統不運行了,請大家幫忙。

我的做法是:
1. 連線資料庫之前,先將ADOConnection的 CursorLocation設定為clUseServer
2. 呼叫窗體前,遍歷窗體所有ADOQUERY元件,然後將其 CursorLocation設定為clUseServer
   
  ADOQUERY.Open    失敗


CursorLocation屬性,指定資料庫指標是指向客戶端還是伺服器端。型別TCursorLocation包含兩個值:
1、cluseServer:使用伺服器端的資料庫指標,適用於資料量大的資料集。
2、cluseClient:使用客戶端的資料指標的時候,資料將被下載到本地計算機上,並在本地進行操作。
3、設定CursorLocation:=cluseServer;指定使用伺服器端遊標,使用伺服器端遊標的好處是,程式對資料庫的修改可以立即反映到伺服器,而且,其他使用者對資料庫的操作也可以馬上反映出來,但使用伺服器端遊標帶來了高網路流量, 每一個數據訪問都需要通過網路交換資料。     
4、設定CursorLocation:=cluseClient;指定使用客戶端的遊標,ADO提供了客戶端資料快取處理機制,因此,ADO利用本地資料快取以降低網路流量,雖然在資料訪問靈活性上有所損失,但卻大大提高了通過網路訪問資料庫的效能。   

你的軟體,使用伺服器端的資料庫指標,可能使用非同步檢索多個數據集,造成網路堵死。