ADO学习(六)服务器和客户端游标
ADO連接數據庫的操作中遇到CursorLocation的adUseClient和adUseServer這兩個屬性值,收集了些資料,幫助理解。
服務器端游標將結果集放在服務器的緩沖區內,客戶端游標將結果集放在客戶機的緩沖區內.
服務器端游標對數據的變化有很強的敏感性,客戶端游標在處理記錄集的速度上有優勢,配合僅向前游標等使用可以提高程序的性能,并且少占網絡資源,還可以支持較多的其他特性.但使用客戶端游標在從服務器讀取記錄集時較占資源.這要看實際情況使用了
如果在connection中設置游標類型為服務器端,在record中設置為客戶端,那哪個算數,反之呢
用connection對象的語句就使用connection對象的游標(conn.Execute()),使用recordset的用recordset的游標(rst.Open()).?
如果在你取到記錄集以后,有人修改了數據庫里的數據,使用服務器端游標加上動態游標就可以得到最新的數據,這時如果是客戶端游標就無法察覺到數據的變化。要根據實際情況來使用。如果你的系統對數據要求即時性較高則可用服務器端游標,反之則使用客戶端游標,提高程序性能。使用服務器端游標也可以調用存儲過程的,只不過他無法返回記錄條數(recordcount)要使用客戶端游標就可以了。
對游標控制
在Recordset對象還有一個屬性CursorLocation用于指定游標的位置,我們可以指定使用客戶端的游標,也可以指定使用服務器端游標。CursorLocation屬性的缺省值為adUseServer,使用服務器端游標的好處是,程序對數據庫的修改可以立即反映到服務器,而且,其他用戶對數據庫的操作也可以馬上反映出來,但使用服務器端游標帶來了高網絡流量,每一個數據訪問都需要通過網絡交換數據。
ADO提供了客戶端數據緩存處理,因此,在打開Recordset對象前,可以設置CursorLocation為adUseClient,指定使用客戶端游標。通過客戶端游標,ADO利用本地數據緩存以降低網絡流量,雖然在數據訪問靈活性上有所損失,但卻大大提高了通過網絡訪問數據庫的性能。
總結
以上是生活随笔為你收集整理的ADO学习(六)服务器和客户端游标的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win32中如何使用CString
- 下一篇: 1_4 BuilderMode 建造者模