Описание
Возвращает значение, указывающее состояние обновления текущей записи, если эта запись участвует в операции пакетного обновления (только в рабочей области ODBCDirect).
Значение
Возвращаемое значение имеет тип данных Long и определяется с помощью одной из следующих констант:
Замечания
Свойство RecordStatus указывает состояние изменения текущей записи в последней операции пакетного обновления с нежесткой блокировкой.
Когда пользователь изменяет запись, свойство RecordStatus для этой записи автоматически получает значение dbRecordModified. Аналогично, при добавлении или удалении записи свойство RecordStatus автоматически получает значение соответствующей константы. При дальнейшем вызове метода Update в пакетном режиме, механизм DAO задает для каждой записи выполнение соответствующей операции на удаленном сервере, основываясь на свойстве RecordStatus этой записи.
Пример
Следующая программа использует свойства RecordStatus и DefaultCursorDriver для демонстрации изменений в локальном объекте Recordset во время пакетного обновления. Для выполнения данной процедуры требуется функция RecordStatusOutput.
Sub RecordStatusX() Dim wrkMain As Workspace Dim conMain As Connection Dim rstTemp As Recordset Set wrkMain = CreateWorkspace("ODBCWorkspace", "admin", "", dbUseODBC) ' Это значение свойства DefaultCursorDriver ' требуется для пакетного обновления. wrkMain.DefaultCursorDriver = dbUseClientBatchCursor Set conMain = wrkMain.OpenConnection("Publishers", dbDriverNoPrompt, False, "ODBC;DATABASE=pubs;UID=sa;PWD=;DSN=Publishers") ' Следующий аргумент блокировки ' требуется для пакетного обновления. Set rstTemp = conMain.OpenRecordset( "SELECT * FROM authors", dbOpenDynaset, 0, dbOptimisticBatch) With rstTemp .MoveFirst Debug.Print "Исходная запись: " & !au_lname Debug.Print , RecordStatusOutput2(.RecordStatus) .Edit !au_lname = "Bowen" .Update Debug.Print "Измененная запись: " & !au_lname Debug.Print , RecordStatusOutput2(.RecordStatus) .AddNew !au_lname = "NewName" .Update Debug.Print "Новая запись: " & !au_lname Debug.Print , RecordStatusOutput2(.RecordStatus) .Delete Debug.Print "Удаленная запись: " & !au_lname Debug.Print , RecordStatusOutput2(.RecordStatus) ' Закрывает локальный набор записей ' без обновления данных на сервере. .Close End With conMain.Close wrkMain.Close End Sub Function RecordStatusOutput(lngTemp As Long) As String Dim strTemp As String strTemp = "" ' Создает отображаемую строку на основании ' значения свойства RecordStatus. If lngTemp = dbRecordUnmodified Then strTemp = "[dbRecordUnmodified]" If lngTemp = dbRecordModified Then strTemp = "[dbRecordModified]" If lngTemp = dbRecordNew Then strTemp = "[dbRecordNew]" If lngTemp = dbRecordDeleted Then strTemp = "[dbRecordDeleted]" If lngTemp = dbRecordDBDeleted Then strTemp = "[dbRecordDBDeleted]" RecordStatusOutput = strTemp End Function