Übersicht über den Microsoft Cursor Service für OLE DB
Der Microsoft Cursor Service für OLE DB ergänzt die Cursorunterstützungsfunktionen von Datenanbietern. Daher nimmt der Benutzer relativ einheitliche Funktionen von allen Datenanbietern wahr.
Der Cursordienst stellt dynamische Eigenschaften zur Verfügung und verbessert das Verhalten bestimmter Methoden. Beispielsweise ermöglicht die Optimize dynamische Eigenschaft die Erstellung temporärer Indizes, um bestimmte Vorgänge wie die Find-Methode zu erleichtern.
Der Cursordienst ermöglicht die Unterstützung für die Batchaktualisierung in allen Fällen. Es simuliert auch fähigere Cursortypen, z. B. dynamische Cursor, wenn ein Datenanbieter nur weniger fähige Cursor bereitstellen kann, z. B. statische Cursor.
Schlüsselwort
Um diese Dienstkomponente aufzurufen, setzen Sie die Recordset-- oder Connection--Eigenschaft des CursorLocation--Objekts auf adUseClient.
connection.CursorLocation=adUseClient
recordset.CursorLocation=adUseClient
Dynamische Eigenschaften
Wenn der Cursordienst für OLE DB aufgerufen wird, werden die folgenden dynamischen Eigenschaften der Recordset-Objekt Properties -Auflistung hinzugefügt. Die vollständige Liste der dynamischen Eigenschaften von Connection- und Recordset-Objekten ist im ADO Dynamic Property Indexaufgeführt. Die zugehörigen OLE DB-Eigenschaftennamen sind ggf. in Klammern nach dem ADO-Eigenschaftsnamen enthalten.
Änderungen an einigen dynamischen Eigenschaften sind für die zugrunde liegende Datenquelle nach dem Aufrufen des Cursordiensts nicht sichtbar. Das Festlegen der Command Timeout-Eigenschaft für ein Recordset ist für den zugrunde liegenden Datenanbieter nicht sichtbar.
Recordset1.CursorLocation = adUseClient 'invokes cursor service
Recordset1.Open "authors", _
"Provider=SQLOLEDB;Data Source=DBServer;User Id=MyUserID;" & _
"Password=<password>;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 für den zugrunde liegenden Anbieter festlegen müssen, legen Sie die Eigenschaften fest, bevor Sie den Cursordienst aufrufen. Die Einstellungen der Eigenschaften von Befehlsobjekten werden unabhängig von der Cursorposition immer an den zugrunde liegenden Datenanbieter übergeben. Daher können Sie auch ein Befehlsobjekt verwenden, um die Eigenschaften jederzeit festzulegen.
Anmerkung
Die dynamische Eigenschaft DBPROP_SERVERDATAONINSERT wird vom Cursordienst nicht unterstützt, auch wenn sie vom zugrunde liegenden Datenanbieter unterstützt wird.
Eigenschaftsname | Beschreibung |
---|---|
Automatische Neuberechnung (DBPROP_ADC_AUTORECALC) | Für Recordsets, die mit dem Datenstrukturierungsdienst erstellt wurden, gibt dieser Wert an, wie oft berechnete und aggregierte Spalten berechnet werden. Der Standardwert (Wert=1) ist die Neuberechnung, wenn der Datenstrukturierungsdienst bestimmt, dass sich die Werte geändert haben. Wenn der Wert 0 ist, werden die berechneten oder aggregierten Spalten nur berechnet, wenn die Hierarchie anfänglich erstellt wird. |
Batchgröße (DBPROP_ADC_BATCHSIZE) | Gibt die Anzahl der Aktualisierungsanweisungen an, die vor dem Senden an den Datenspeicher gebündelt werden können. Je mehr Anweisungen in einem Batch, desto weniger Roundtrips zum Datenspeicher. |
Zwischenspeichern untergeordneter Zeilen (DBPROP_ADC_CACHECHILDROWS) | Bei Recordsets, die mit dem Datenstrukturierungsdienst erstellt wurden, gibt dieser Wert an, ob untergeordnete Recordsets für die spätere Verwendung in einem Cache gespeichert werden. |
Cursor-Engine-Version (DBPROP_ADC_CEVER) | Gibt die Verwendete Version des Cursordiensts an. |
Änderungsstatus beibehalten (DBPROP_ADC_MAINTAINCHANGESTATUS) | Gibt den Text des Befehls an, der zum erneuten Synchronisieren einer oder mehrerer Zeilen in einer Tabellenverknüpfung verwendet wird. |
Optimieren | Gibt an, ob ein Index erstellt werden soll. Wenn dieser Wert auf Truefestgelegt ist, autorisiert die temporäre Erstellung von Indizes, um die Ausführung bestimmter Vorgänge zu verbessern. |
Form umbenennen | Gibt den Namen des Recordsetsan. Kann innerhalb der aktuellen oder nachfolgenden Datenstrukturierungsbefehle referenziert werden. |
Resynchronisierungsbefehl | Gibt eine benutzerdefinierte Befehlszeichenfolge an, die von der Resync -Methode verwendet wird, wenn die Unique Table -Eigenschaft wirksam ist. |
Einzigartiger Katalog | Gibt den Namen der Datenbank an, auf die in der Unique Table -Eigenschaft verwiesen wird. |
Einzigartiges Schema | Gibt den Namen des Besitzers der Tabelle an, auf die in der Unique Table -Eigenschaft verwiesen wird. |
Einzigartige Tabelle | Gibt den Namen der eine Tabelle in einem Recordset an, aus mehreren Tabellen erstellt werden, die durch Einfügungen, Aktualisierungen oder Löschungen geändert werden können. |
Aktualisierungskriterien (DBPROP_ADC_UPDATECRITERIA) | Gibt an, welche Felder in der WHERE--Klausel verwendet werden, um Kollisionen zu behandeln, die während einer Aktualisierung auftreten. |
Aktualisierungs-Resync (DBPROP_ADC_UPDATERESYNC) | Gibt an, ob die Resync- -Methode implizit aufgerufen wird, nachdem die UpdateBatch -Methode (und sein Verhalten) ausgeführt wird, wenn die Unique Table -Eigenschaft wirksam ist. |
Sie können eine dynamische Eigenschaft auch festlegen oder abrufen, indem Sie ihren Namen als Index für die Properties -Auflistung angeben. Rufen Sie z. B. den aktuellen Wert der Optimize dynamischen Eigenschaft ab, drucken Sie ihn aus und legen Sie dann einen neuen Wert fest, wie folgt:
Debug.Print rs.Properties("Optimize")
rs.Properties("Optimize") = True
Integriertes Eigenschaftenverhalten
Der Cursordienst für OLE DB wirkt sich auch auf das Verhalten bestimmter integrierter Eigenschaften aus.
Eigenschaftsname | Beschreibung |
---|---|
CursorType- | Ergänzt die Cursor-Typen, die für ein Recordsetverfügbar sind. |
LockType- | Ergänzt die verfügbaren Sperrtypen für ein Recordset. Aktiviert Batchaktualisierungen. |
Sortieren | Gibt einen oder mehrere Feldnamen an, nach denen das Recordset- sortiert ist und ob jedes Feld in aufsteigender oder absteigender Reihenfolge sortiert ist. |
Methodenverhalten
Der Cursordienst für OLE DB ermöglicht oder wirkt sich auf das Verhalten der Methode Append des Field--Objekts aus; und die Methoden Open, Resync, UpdateBatchund Save des Recordset--Objekts.