Recordset.UpdateOptions-Eigenschaft (DAO)
Gilt für: Access 2013, Office 2013
Syntax
Ausdruck . UpdateOptions
Ausdruck Eine Variable, die ein Recordset-Objekt darstellt.
Bemerkungen
Wenn eine Update -Anweisung im Batchmodus ausgeführt wird, erstellen DAO und die Client-Batchcursorbibliothek eine Reihe von SQL UPDATE-Anweisungen, um die erforderlichen Änderungen auszuführen. Für jede Aktualisierung wird eine SQL WHERE-Klausel erstellt, um die Datensätze zu isolieren, die von der RecordStatus -Eigenschaft als geändert markiert wurden. Da einige Remoteserver Trigger oder andere Wege verwenden, um die referenzielle Integrität zu erzwingen, müssen häufig die zu aktualisierenden Felder auf die Felder beschränkt werden, die von der Änderung betroffen sind.
Hierzu legen Sie die UpdateOptions-Eigenschaft auf eine der Konstanten dbCriteriaKey, dbCriteriaModValues, dbCriteriaAllCols oder dbCriteriaTimeStamp fest. Auf diese Weise wird nur der absolut notwendige Triggercode ausgeführt. Als Ergebnis wird der Aktualisierungsvorgang schneller und mit weniger potenziellen Fehlern ausgeführt.
Sie können auch eine der Konstanten dbCriteriaDeleteInsert oder dbCriteriaUpdate verketten, um zu bestimmen, ob beim Zurücksenden von Batchänderungen an den Server eine Reihe von SQL DELETE- und INSERT-Anweisungen oder eine SQL UPDATE-Anweisung für jedes Update verwendet werden soll. Im ersten Fall sind zwei separate Vorgänge erforderlich, um den Datensatz zu aktualisieren. In einigen Fällen, insbesondere wenn das Remotesystem DELETE-, INSERT- und UPDATE-Trigger implementiert, kann sich die Auswahl der richtigen UpdateOptions-Eigenschaftseinstellung erheblich auf die Leistung auswirken.
Wenn Sie keine Konstanten angeben, werden dbCriteriaUpdate und dbCriteriaKey verwendet.
Neu hinzugefügte Datensätze generieren immer INSERT-Anweisungen, und gelöschte Datensätze generieren immer DELETE-Anweisungen, sodass diese Eigenschaft nur angibt, wie die Cursorbibliothek geänderte Datensätze aktualisiert.
Beispiel
In diesem Beispiel werden die Eigenschaften BatchSize und UpdateOptions verwendet, um Aspekte von Batchaktualisierungen für das angegebene Recordset-Objekt zu steuern.
Sub BatchSizeX()
Dim wrkMain As Workspace
Dim conMain As Connection
Dim rstTemp As Recordset
Set wrkMain = CreateWorkspace("ODBCWorkspace", _
"admin", "", dbUseODBC)
' This DefaultCursorDriver setting is required for
' batch updating.
wrkMain.DefaultCursorDriver = dbUseClientBatchCursor
' Note: The DSN referenced below must be configured to
' use Microsoft Windows NT Authentication Mode to
' authorize user access to the Microsoft SQL Server.
Set conMain = wrkMain.OpenConnection("Publishers", _
dbDriverNoPrompt, False, _
"ODBC;DATABASE=pubs;DSN=Publishers")
' The following locking argument is required for
' batch updating.
Set rstTemp = conMain.OpenRecordset( _
"SELECT * FROM roysched", dbOpenDynaset, 0, _
dbOptimisticBatch)
With rstTemp
' Increase the number of statements sent to the server
' during a single batch update, thereby reducing the
' number of times an update would have to access the
' server.
.BatchSize = 25
' Change the UpdateOptions property so that the WHERE
' clause of any batched statements going to the server
' will include any updated columns in addition to the
' key column(s). Also, any modifications to records
' will be made by deleting the original record
' and adding a modified version rather than just
' modifying the original record.
.UpdateOptions = dbCriteriaModValues + _
dbCriteriaDeleteInsert
' Engage in batch updating using the new settings
' above.
' ...
.Close
End With
conMain.Close
wrkMain.Close
End Sub