共用方式為


編輯數據

我們已說明如何使用 ADO 連線至數據源、執行命令、取得 Recordset 對象的結果,以及在 Recordset內巡覽。 本節著重於下一個基本的 ADO 作業:編輯數據。

本節將繼續使用在 檢查數據中引入的範例 Recordset,但會有一項重要變更。 下列程式代碼可用來開啟 Recordset

'BeginEditIntro  
    Dim strSQL As String  
    Dim objRs1 As ADODB.Recordset  
  
    strSQL = "SELECT * FROM Shippers"  
  
    Set objRs1 = New ADODB.Recordset  
  
    objRs1.Open strSQL, GetNewConnection, adOpenStatic, _  
                adLockBatchOptimistic, adCmdText  
  
    ' Disconnect the Recordset from the Connection object.  
    Set objRs1.ActiveConnection = Nothing  
'EndEditIntro  

程序代碼的重要變更牽涉到在 GetNewConnection 函式中,將 Connection 物件的 CursorLocation 屬性設為 adUseClient,這表示將使用客戶端游標。 如需瞭解用戶端與伺服器端游標的差異,請參閱瞭解游標和鎖定

CursorLocation 屬性的 adUseClient 設定會將游標的位置從數據源(在此案例中為 SQL Server)移至用戶端程序代碼的位置(桌面工作站)。 此設定會強制 ADO 在用戶端上叫用 OLE DB 的用戶端數據指標引擎,以建立和管理數據指標。

您可能也注意到 Open 方法的 LockType 參數已變更為 adLockBatchOptimistic 。 這會以批次模式開啟游標。 (只有在呼叫 UpdateBatch 方法時,提供者才會快取多個變更,並將其寫入基礎數據源。在呼叫 UpdateBatch 方法之前,不會在資料庫中更新對 Recordset 所做的變更。

最後,本節中的程序代碼會使用 GetNewConnection 函式的修改版本。 此版本的函式現在會傳回用戶端游標。 函式看起來像這樣:

'BeginNewConnection  
Public Function GetNewConnection() As ADODB.Connection  
    On Error GoTo ErrHandler:  
  
    Dim objConn As New ADODB.Connection  
    Dim strConnStr As String  
  
    strConnStr = "Provider='SQLOLEDB';Initial Catalog='Northwind';" & _  
                 "Data Source='MySqlServer';Integrated Security='SSPI';"  
  
    objConn.ConnectionString = strConnStr  
    objConn.CursorLocation = adUseClient  
    objConn.Open  
  
    Set GetNewConnection = objConn  
  
    Exit Function  
  
ErrHandler:  
    Set objConn = Nothing  
    Set GetNewConnection = Nothing  
  
    If Err <> 0 Then  
        MsgBox Err.Source & "-->" & Err.Description, , "Error"  
    End If  
End Function  
'EndNewConnection  

本節包含下列主題。