Share via


Von verteilten Abfragen verwendete OLE DB-Objekte

Die folgende Tabelle zeigt die OLE DB-Objekte und -Schnittstellen, die von verteilten Transact-SQL-Abfragen verwendet werden. Ein OLE DB-Anbieter muss bestimmte Objekte und Schnittstellen unterstützen, damit er in verteilten Transact-SQL-SQL-Abfragen verwendet werden kann. Diese Objekte und Schnittstellen sind in der Spalte Erforderlich der Tabelle mit Ja gekennzeichnet. Die Objekte und Schnittstellen mit Nein in der Spalte Erforderlich werden nur zur Unterstützung erweiterter Abfragefunktionen benötigt. Wenn die Schnittstelle nicht vom Anbieter unterstützt wird, werden auch damit verbundene Transact-SQL-Funktionen nicht unterstützt. Werden z. B. die Schnittstellen IRowsetLocate und IRowsetChange nicht unterstützt, können UPDATE- oder DELETE-Anweisungen nicht auf Remotetabellen angewendet werden.

Objekt

Schnittstelle

Erforderlich

Beschreibung

Datenquelle

IDBInitialize

Ja

Initialisieren und Einrichten von Daten und Sicherheitskontext.

 

IDBCreateSession

Ja

Erstellen eines DB-Sitzungsobjekts.

 

IDBProperties

Ja

Abrufen von Informationen über die Möglichkeiten des Anbieters und Festlegen von Initialisierungseigenschaften.

 

IDBInfo

Nein

Abrufen von Informationen über die vom Anbieter unterstützte SQL-Syntax.

DB-Sitzung

IDBSchemaRowset

Nein

Abrufen von Tabellen und Spaltenmetadaten. Erforderliche Rowsets sind TABLES und COLUMNS. Andere ggf. verwendete Rowsets sind TABLES_INFO, CATALOGS, INDEXES, STATISTICS, TABLE_STATISTICS, VIEWS, PRIMARY_KEYS, TABLE_PRIVILEGES und COLUMN_PRIVILEGES.

 

IOpenRowset

Ja

Öffnen eines Rowsets für eine Tabelle, einen Index oder ein Histogramm.

 

IGetDataSource

Ja

Zurückkehren zum Datenquellenobjekt von einem DB-Sitzungsobjekt.

 

IDBCreateCommand

Nein

Erstellen eines Befehlsobjekts (Abfrage).

 

ITransactionLocal

Nein

Starten einer Transaktion auf dem Anbieter.

 

ITransactionJoin

Nein

Unterstützen verteilter Transaktionen. Wenn diese Schnittstelle nicht unterstützt wird, können in einer Benutzertransaktion keine Aktualisierungen an einem Remoteanbieter durchgeführt werden.

Rowset (bei einer Tabelle)

IRowset

Ja

Scannen von Zeilen.

 

IAccessor

Ja

Binden an Spalten in einem Rowset.

 

IColumnsInfo

Ja

Abrufen von Informationen über Spalten in einem Rowset.

 

IRowsetInfo

Ja

Abrufen von Informationen über Rowseteigenschaften.

 

IRowsetLocate

Nein

Erforderlich für UPDATE- oder DELETE-Vorgänge und indexbasierte Suchvorgänge.

 

IRowsetChange

Nein

Erforderlich für INSERT-, UPDATE- oder DELETE-Vorgänge in einer Tabelle. Rowsets für Basistabellen sollten diese Schnittstelle zur Unterstützung von INSERT-, UPDATE- oder DELETE-Anweisungen unterstützen.

 

IConvertType

Ja

Prüfen, ob ein Rowset bestimmte Datentypkonvertierungen seiner Spalten unterstützt.

Rowset (bei einem Index)

IRowset

Ja

Scannen von Zeilen.

 

IAccessor

Ja

Binden an Spalten in einem Rowset.

 

IColumnsInfo

Ja

Abrufen von Informationen über Spalten in einem Rowset.

 

IRowsetInfo

Ja

Abrufen von Informationen über Rowseteigenschaften.

 

IRowsetIndex

Ja

Erforderlich für Rowsets in einem Index; verwendet für Indizierungsfunktionen (Bereich festlegen, Suchen).

 

IConvertType

Ja

Prüfen, ob das Rowset bestimmte Datentypkonvertierungen seiner Spalten unterstützt.

Befehl (optional)

ICommand

Ja

Ausführen von Abfragen.

 

ICommandText

Ja

Definieren des Abfragetextes.

 

ICommandProperties

Ja

Angeben erforderlicher Eigenschaften für vom Befehl zurückgegebene Rowsets.

 

ICommandWithParameters

Nein

Parametrisierte Abfrageausführung.

 

ICommandPrepare

Nein

Vorbereiten eines Befehls zum Abrufen von Metadaten.

Fehler (optional)

IErrorRecords

Ja

Abrufen eines Zeigers auf eine IErrorInfo-Schnittstelle für einen Fehlerdatensatz.

 

IErrorInfo

Ja

Abrufen einer Textbeschreibung eines Fehlerdatensatzes.

Beliebiges Objekt (optional)

ISupportErrorInfo

Nein

Bestimmen, ob eine bestimmte Schnittstelle Fehlerobjekte unterstützt.