Глава 4. Редактирование данных

Область применения: Access 2013, Office 2013

В предыдущих двух главах объясняется, как использовать ADO для подключения к источнику данных, выполнения команды, получения результатов в объекте Recordset и навигации по набору записей. В этой главе основное внимание уделяется следующей основной операции ADO: редактированию данных.

В этой главе по-прежнему используется пример набора записей , представленный в главе 3, с одним важным изменением. Для открытия набора записей используется следующий код:

 
 . . . 
'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 
 
 
 . . . 

Важное изменение в коде включает задание свойства CursorLocation объекта Connection, равного adUseClient в функции GetNewConnection (показано ниже), что указывает на использование клиентского курсора. Дополнительные сведения о различиях между клиентскими и серверными курсорами см. в разделе Глава 8. Общие сведения о курсорах и блокировках.

Параметр adUseClient свойства CursorLocation перемещает расположение курсора из источника данных (в данном случае SQL Server) в расположение клиентского кода (настольной рабочей станции). Этот параметр заставляет ADO вызывать обработчик клиентских курсоров для OLE DB на клиенте, чтобы создать курсор и управлять им.

Вы также могли заметить, что параметр LockType метода Open изменился на adLockBatchOptimistic. Откроется курсор в пакетном режиме. (Поставщик кэширует несколько изменений и записывает их в базовый источник данных только при вызове метода UpdateBatch .) Изменения, внесенные в набор записей , не будут обновляться в базе данных до вызова метода UpdateBatch .

Наконец, код в этой главе использует измененную версию функции GetNewConnection, представленную в главе 2. Эта версия функции теперь возвращает курсор на стороне клиента. Функция выглядит следующим образом:

 
'BeginNewConnection 
Public Function GetNewConnection() As ADODB.Connection 
 Dim objConn1 As ADODB.Connection 
 Set objConn1 = New ADODB.Connection 
 
 strConnStr = "Provider=SQLOLEDB;Initial Catalog=Northwind;" & _ 
 "Data Source=MySrvr;Integrated Security=SSPI;" 
 
 objConn1.ConnectionString = strConnStr 
 objConn1.CursorLocation = adUseClient 
 objConn1.Open 
 
 Set GetNewConnection = objConn1 
End Function 
'EndNewConnection 

В этой главе рассматриваются следующие темы: