Microsoft Cursor Service für OLE DB (ADO-Dienstkomponente)
Gilt für: Access 2013, Office 2013
Der Microsoft Cursor Service für OLE DB ergänzt die Cursor-Hilfsfunktionen von Datenanbietern. Der Benutzer nimmt daher eine relativ einheitliche Funktionalität aller Datenprovider wahr.
Der Cursordienst macht dynamische Eigenschaften verfügbar und verbessert das Verhalten bestimmter Methoden. Beispiel: Die dynamische Optimize-Eigenschaft ermöglicht das Erstellen temporärer Indizes, um bestimmte Vorgänge, wie die Find-Methode, zu erleichtern.
Der Cursordienst ermöglicht die Unterstützung von Batchaktualisierungen in allen Fällen. Er simuliert darüber hinaus auch leistungsfähigere Cursortypen, wie dynamische Cursor, wenn ein Datenprovider nur weniger leistungsfähige Cursor, wie statische Cursor, bereitstellen kann.
Schlüsselwort
Um diese Dienstkomponente aufzurufen, legen Sie die CursorLocation-Eigenschaft der Objekte Recordset oder Connection auf adUseClient fest.
connection.CursorLocation=adUseClientrecordset.CursorLocation=adUseClient
Dynamische Eigenschaften
Wenn der Cursordienst für OLE DB aufgerufen wird, werden der Properties-Auflistung des Recordset-Objekts die folgenden dynamischen Eigenschaften hinzugefügt. Die vollständige Liste der dynamischen Eigenschaften des Connection- und Recordset-Objekts ist im Dynamischen Eigenschaftenindex von ADO aufgeführt. Die zugeordneten OLE DB-Eigenschaftsnamen werden ggf. in Klammern nach dem Namen der ADO-Eigenschaft eingefügt.
Nach dem Aufrufen des Cursordiensts sind Änderungen an einigen dynamischen Eigenschaften für die zugrunde liegende Datenquelle nicht erkennbar. Beispielsweise ist das Festlegen der Command Timeout-Eigenschaft für ein Recordset-Objekt für den zugrunde liegenden Datenanbieter nicht sichtbar.
...
Recordset1.CursorLocation = adUseClient 'invokes cursor service
Recordset1.Open "authors", _
"Provider=SQLOLEDB;Data Source=DBServer;User Id=usr;" & _
"Password=pwd;Initial Catalog=pubs;",,adCmdTable
Recordset1.Properties.Item("Command Time out") = 50
' 'Command Time out' property on DBServer is still default (30).
...
Wenn Ihre Anwendung den Cursordienst erfordert, Sie jedoch dynamische Eigenschaften im zugrunde liegenden Anbieter festlegen müssen, tun Sie dies, bevor Sie den Cursordienst aufrufen. Einstellungen für Eigenschaften von Befehlsobjekten werden unabhängig von der Cursorplatzierung immer an den zugrundeliegenden Datenprovider weitergeleitet. Sie können daher auch jederzeit ein Befehlsobjekt zum Festlegen der Eigenschaften verwenden.
Hinweis
Die dynamische Eigenschaft DBPROP_SERVERDATAONINSERT wird vom Cursordienst nicht unterstützt, auch wenn sie vom zugrunde liegenden Datenprovider unterstützt wird.
Eigenschaftenname |
Beschreibung |
---|---|
Auto Recalc |
Bei Datensatzgruppen, die mit dem Datenstrukturierungsdienst erstellt wurden, gibt dieser Wert an, wie häufig berechnete und Aggregatspalten berechnet werden. Der Standardwert (Wert=1) bedeutet, dass eine Neuberechnung durchgeführt wird, wenn der Datenstrukturierungsdienst feststellt, dass sich die Werte geändert haben. Wenn der Wert 0 ist, werden die berechneten und Aggregatspalten nur berechnet, wenn die Hierarchie zum ersten Mal erstellt wird. |
Batch Size |
Gibt die Anzahl von Aktualisierungsanweisungen an, die vor dem Senden an die Datenquelle als Batch verarbeitet werden können. Je mehr Anweisungen in einem Batch, umso weniger Schleifen zum Datenspeicher sind erforderlich. |
Cache Child Rows |
Bei Datensatzgruppen, die mit dem Datenstrukturierungsdienst erstellt wurden, gibt dieser Wert an, ob untergeordnete Datensatzgruppen zur späteren Verwendung in einem Cache gespeichert werden. |
Cursor Engine Version |
Gibt die Version des verwendeten Cursordiensts an. |
Maintain Change Status |
Gibt den Text des Befehls an, der zum erneuten Synchronisieren einer oder mehrerer Zeilen in einer Verknüpfung aus mehreren Tabellen verwendet wird. |
Gibt an, ob ein Index erstellt werden soll. Wenn diese Eigenschaft auf True festgelegt ist, wird das temporäre Erstellen von Indizes zum Verbessern der Ausführung bestimmter Vorgänge zugelassen. |
|
Gibt den Namen des Recordset-Objekts an. Darauf kann in aktuellen oder nachfolgenden Datenstrukturierungsbefehlen verwiesen werden. |
|
Gibt eine benutzerdefinierte Befehlszeichenfolge an, die von der Resync-Methode verwendet wird, wenn die Unique Table-Eigenschaft aktiv ist. |
|
Gibt den Namen der Datenbank an, der die Tabelle enthält, auf die in der Unique Table-Eigenschaft verwiesen wird. |
|
Gibt den Namen der Besitzers der Tabelle an, auf die in der Unique Table-Eigenschaft verwiesen wird. |
|
Gibt den Namen der Tabelle in einem aus mehreren Tabellen erstellten Recordset-Objekt an, die durch Einfügungen, Aktualisierungen oder Löschvorgänge geändert werden kann. |
|
Update Criteria |
Gibt an, welche Felder in der WHERE-Klausel zum Behandeln von Konflikten bei einer Aktualisierung verwendet werden. |
Update Resync(DBPROP_ADC_UPDATERESYNC) |
Gibt an, ob die Resync-Methode nach der UpdateBatch-Methode (und dem jeweiligen Verhalten) implizit aufgerufen wird, wenn die Unique Table-Eigenschaft aktiv ist. |
Sie können auch eine dynamische Eigenschaft festlegen oder abrufen, indem Sie deren Namen als Index für die Properties-Auflistung angeben. Rufen Sie z. B. den aktuellen Wert der dynamischen Optimize-Eigenschaft ab, und geben Sie diesen aus, und legen Sie dann wie folgt einen neuen Wert fest:
Debug.Print rs.Properties("Optimize")
rs.Properties("Optimize") = True
Verhalten integrierter Eigenschaften
Der Microsoft Cursor Service für OLE DB hat auch Auswirkungen auf das Verhalten bestimmter integrierter Eigenschaften.
Eigenschaftenname |
Beschreibung |
---|---|
Ergänzt die für ein Recordset-Objekt verfügbaren Cursortypen. |
|
Ergänzt die für ein Recordset-Objekt verfügbaren Typen von Sperren. Ermöglicht Batchaktualisierungen. |
|
Gibt einen oder mehrere Feldnamen an, nach denen das Recordset-Objekt sortiert ist. Gibt außerdem an, ob die einzelnen Felder in auf- oder absteigender Folge sortiert sind. |
Methodenverhalten
Der Microsoft Cursor Service für OLE DB ermöglicht oder beeinflusst das Verhalten der Append-Methode des Field-Objekts sowie der Methoden Open, Resync, UpdateBatch und Save des Recordset-Objekts.