<%
游標類型
Const adOpenForwardOnly =
Const adOpenKeyset =
Const adOpenDynamic =
Const adOpenStatic =
加鎖類型
Const adLockReadOnly =
Const adLockPessimistic =
Const adLockOptimistic =
Const adLockBatchOptimistic =
>%
<% Set Conn = Server
CreateObject(
ADODB
Connection
) >%
<% Set RSMov = Server
CreateObject(
ADODB
RecordSet
) >%
<% Conn
Open
數據源名稱
sa
>%
<% RSMov
Open sqlMov
Conn
adOpenKeyset
adLockReadOnly >%
游標使用時是比較靈活的
它有時用來描述一個記錄集
有時又是用來描述當前記錄集中某一條記錄的指針
游標主要是用來建立一個關系數據庫中行/列關系的一種SQL可利用的訪問格式
與游標有關系的技術術語還有一個叫Bookmark的
如果你選擇的游標方式支持Bookmarks
數據庫將提供有關記錄數目的強大功能
在上面寫出的那麼多游標方式中
adOpenDynamic是沒有太的用處的
雖然它提供實時顯示數據庫中的記錄的所有更新操作的功能
但是因為並不是所有的數據庫都支持該游標方式
沒有移植性的游標方式對當前錯綜復雜的數據庫來說真是用處不大
在實際的編程中
我相信大家使用得最頻繁的是adOpenStatic方式
當然這種方式的缺點是不能夠就
實時反應出數據庫中內容改變時的狀況
如果要想看到數據庫被其它用戶改變的狀況
可使用adOpenKeyse方式(但是它只能夠反應出被編輯的改變情況
也就是說不能夠反映出新增和刪除記錄的改變情況
)
其實上面的內容大家一般都可以在微軟的技術參考資料中找到
下面來說說在使用這些游標方式和加鎖方式時要注意到的問題
首先要注意到的是這兩種方式在混合使用時的問題
就是說你同時設置游標方式和加鎖方式
除非你是在使用Access數據庫
一般而言當你混合使用時是並不能夠得到你預期想要的游標方式和加鎖方式的
例如
如果你同時將游標設置為adOpenStatic方式
而將加鎖設置為adLockOptimistic
你將得不到adOpenStatic方式的游標
你這時使用的游標方式將是adOpenKeyset
也就是說你使用ADO的話
它將返回adOpenKeyset的游標
其次
游標和加鎖的混合使用還會導致ADO返回的不是你想要的加鎖方式
ADO會改變你的加鎖方式
例如
在默認狀態下游標方式是adOpenForwardOnly
在使用這種游標方式的同時如果你使用的加鎖方式為
(就是讓數據源來判斷加鎖方式)或則adLockReadOnly
那麼這種混合方式基本上不支持RecordSet的任何方法
也就是說RecordSet的任何方法將返回False(你的recordcount
absoultpage
addnew
delete
update等都會返回
就是表示不支持該屬性)
但是這時如果你使用的是adOpenForwardOnly游標方式和其它的加鎖方式混合
它反而會支持填加
刪除和更新
From:http://tw.wingwit.com/Article/program/SQLServer/201311/22180.html