共用方式為


編輯資料

我們已說明如何使用 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  

程式碼的重大變更,就是將 Connection 物件的 CursorLocation 屬性設定為與 GetNewConnection 函式中的 adUseClient 相等 (如下一個範例所示),這表示使用了用戶端資料指標。 如需用戶端和伺服器端資料指標之間差異的詳細資訊,請參閱瞭解資料指標和鎖定

CursorLocation 屬性的 adUseClient 設定會將資料指標的位置從資料來源 (在此案例中為 SQL Server) 移動到用戶端程式碼 (桌面工作站) 的位置。 此設定會強制 ADO 在用戶端上叫用 Client Cursor Engine for OLE DB,以建立和管理資料指標。

您或許也發現 Open 方法的 LockType 參數已變更為 adLockBatchOptimistic。 此操作會以批次模式開啟資料指標。 (提供者只會在您呼叫 UpdateBatch 方法時,才會快取多個變更,並將其寫入基礎資料來源。) 對 Recordset 所做的變更,必須在呼叫 UpdateBatch 方法之後才會更新到資料庫中。

最後,本節的程式碼會使用 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  

此章節包含下列主題。