编辑数据
我们介绍了如何使用 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
本节包含以下主题。