此頁(yè)沒(méi)有內(nèi)容條目
內(nèi)容

CursorType、LockType 和 EditMode 屬性范例

該范例說(shuō)明如何在打開(kāi) Recordset 之前設(shè)置 CursorTypeLockType 屬性。同時(shí)還顯示不同情況下 EditMode 的屬性值。該過(guò)程運(yùn)行時(shí)需要 EditModeOutput 函數(shù)。

Public Sub EditModeX()

   Dim cnn1 As ADODB.Connection

   Dim rstEmployees As ADODB.Recordset

   Dim strCnn As String

   ' 使用雇員表中的數(shù)據(jù)打開(kāi)記錄集。

   Set cnn1 = New ADODB.Connection

   strCnn = "Provider=sqloledb;" & _

      "Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "

   cnn1.Open strCnn

   Set rstEmployees = New ADODB.Recordset

   Set rstEmployees.ActiveConnection = cnn1

   rstEmployees.CursorType = adOpenKeyset

   rstEmployees.LockType = adLockBatchOptimistic

   rstEmployees.Open "employee", , , , adCmdTable

   ' 顯示不同編輯狀態(tài)下的 EditMode 屬性。

   rstEmployees.AddNew

   rstEmployees!emp_id = "T-T55555M"

   rstEmployees!fname = "temp_fname"

   rstEmployees!lname = "temp_lname"

   EditModeOutput "After AddNew:", rstEmployees.EditMode

   rstEmployees.UpdateBatch

   EditModeOutput "After UpdateBatch:", rstEmployees.EditMode

   rstEmployees!fname = "test"

   EditModeOutput "After Edit:", rstEmployees.EditMode

   rstEmployees.Close

   ' 刪除新記錄,因?yàn)檫@只是演示。

   cnn1.Execute "DELETE FROM employee WHERE emp_id = 'T-T55555M'"

End Sub

Public Function EditModeOutput(strTemp As String, _

   intEditMode As Integer)

   ' 打印基于 EditMode 屬性值的報(bào)表。

   Debug.Print strTemp

   Debug.Print "  EditMode = ";

   Select Case intEditMode

      Case adEditNone

         Debug.Print "adEditNone"

      Case adEditInProgress

         Debug.Print "adEditInProgress"

      Case adEditAdd

         Debug.Print "adEditAdd"

   End Select

End Function