objRS.Open [Source] , [ActiveConnection] , [CursorType] , [LockType] , [Option]

  • 2464
  • 0

摘要:objRS.Open [Source] , [ActiveConnection] , [CursorType] , [LockType] , [Option]

CursorType , CursorLocation , LockType

CursorTypeValue
adOpenForwardOnly0
adOpenKeySet1
adOpenDynamic2
adOpenStatic3
  • adOpenForwardOnly : cursor 只能向前移動  . 所以 , 使用 objRS.MoveNext , objRS.MoveFirst 是可行的 , 但  objRS.MoveLast 等往後移的動作不被允許 . 用在列出所有資料的場合最為適合 , 速度快且耗用資源少 .
  • adOpenKeySet : 所看到的 Recordset 是固定的 , 也就是說 , 雖然看不到其它使用者新增及刪除的資料 , 但仍然可以看到其它使用者對原本 Recordset 資料內容的更改 , 只是無法更動這些變化 . 此外 , Recordset 資料的排列順序是按照 Key 來決定 .
  • adOpenDynamic : 所看到的 Recordset 不固定 , 隨時會有新增或刪除的資料 . 也可以看到其它使用者對資料的更改 .
  • adOpenStatic : 使用這種模式會使得 Recordset 放在 Local 的記憶體中 , 若別的使用者改變資料 , 並不會反映 . 通常與 adUseClient 一起使用以產生 Disconnected Recordset .

CursorLocationValue
adUseServer2
adUseClient2
adUseClientBatch3
  • adUseServer : cursor 由 Server 維護
  • adUseClient : cursor 由 Client 維護 , 此選項只能與 adOpenStatic 一起使用

LockTypeValue
adLockReadOnly1
adLockPessimistic2
adLockOptimistic3
adLockBatchOptimistic4
  • adLockReadOnly : 唯讀的 Recordset . 因為只能讀 , 所以也就沒有 lock 的問題 .
  • adLockPessimistic : 一但某筆資料開始被編輯 , 則鎖住它 , 直到 Update 完成之後為止 .
  • adLockOptimistic : 只有在 Update 時才鎖定 .
  • adLockBatchOptimistic : 只有在批次 Update 時才鎖定 .