发送更新:UpdateBatch 方法
以下代码通过将 LockType 属性设置为 adLockBatchOptimistic 并将 CursorLocation 设置为 adUseClient,以批处理模式打开 Recordset。 它添加了两条新记录,并更改了现有记录中某个字段的值,保存原始值,然后调用 UpdateBatch 以将更改发送回数据源。
备注
'BeginBatchUpdate
strConn = "Provider=SQLOLEDB;Initial Catalog=Northwind;" & _
"Data Source=MySQLServer;Integrated Security=SSPI;"
strSQL = "SELECT ShipperId, CompanyName, Phone FROM Shippers"
Set objRs1 = New ADODB.Recordset
objRs1.CursorLocation = adUseClient
objRs1.Open strSQL, strConn, adOpenStatic, adLockBatchOptimistic, adCmdText
' Change value of Phone field for first record in Recordset, saving value
' for later restoration.
intId = objRs1("ShipperId")
sPhone = objRs1("Phone")
objRs1("Phone") = "(111) 555-1111"
'Add two new records
For i = 0 To 1
objRs1.AddNew
objRs1(1) = "New Shipper #" & CStr((i + 1))
objRs1(2) = "(nnn) 555-" & i & i & i & i
Next i
' Send the updates
objRs1.UpdateBatch
'EndBatchUpdate
如果在调用 UpdateBatch 方法时编辑当前记录或添加新记录,ADO 将自动调用 Update 方法,将任何挂起的更改保存到当前记录,然后再将批处理更改传输到提供程序。