编辑数据

我们介绍了如何使用 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  

本节包含以下主题。