Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The following table shows the OLE DB objects and interfaces consumed by Transact-SQL distributed queries. An OLE DB provider must support at least a minimal set of objects and interfaces before it can be used in any Transact-SQL distributed queries. These objects and interfaces are marked with a Yes in the Required column of the table. The objects and interfaces with a No in the Required column are required only to support advanced distributed query functionality. If the interface is not supported by the provider, related Transact-SQL functionality is not supported. For example, if the IRowsetLocate and IRowsetChange interfaces are not supported, UPDATE or DELETE statements do not function on remote tables.
Object | Interface | Required | Description |
---|---|---|---|
Data Source |
IDBInitialize |
Yes |
Initializes and sets up data and security context. |
|
IDBCreateSession |
Yes |
Creates a DB Session object. |
|
IDBProperties |
Yes |
Gets information about the capabilities of provider and sets initialization properties. |
|
IDBInfo |
No |
Gets information about the SQL syntax supported by the provider. |
DB Session |
IDBSchemaRowset |
No |
Gets table and column metadata. Rowsets needed are TABLES and COLUMNS. Other rowsets used, if available, are TABLES_INFO, CATALOGS, INDEXES, STATISTICS, TABLE_STATISTICS, VIEWS, PRIMARY_KEYS, TABLE_PRIVILEGES, and COLUMN_PRIVILEGES. |
|
IOpenRowset |
Yes |
Opens a rowset on a table, index, or histogram. |
|
IGetDataSource |
Yes |
Returns to the data source object from a DB Session object. |
|
IDBCreateCommand |
No |
Creates a Command object (query). |
|
ITransactionLocal |
No |
Starts a transaction on the provider. |
|
ITransactionJoin |
No |
Used for distributed transaction support. If this interface is not supported, updates against a remote provider are not allowed in a user transaction. |
Rowset (on a table) |
IRowset |
Yes |
Scans rows. |
|
IAccessor |
Yes |
Binds to columns in a rowset. |
|
IColumnsInfo |
Yes |
Gets information about columns in a rowset. |
|
IRowsetInfo |
Yes |
Gets information about rowset properties. |
|
IRowsetLocate |
No |
Required for UPDATE or DELETE operations and index-based lookups. |
|
IRowsetChange |
No |
Required for INSERT, UPDATE, or DELETE operations on a table. Rowsets against base tables should support this interface for supporting INSERT, UPDATE, or DELETE statements. |
|
IConvertType |
Yes |
Verifies if a rowset supports specific data type conversions on its columns. |
Rowset (on an index) |
IRowset |
Yes |
Scans rows. |
|
IAccessor |
Yes |
Binds to columns in a rowset. |
|
IColumnsInfo |
Yes |
Gets information about columns in a rowset. |
|
IRowsetInfo |
Yes |
Gets information about rowset properties. |
|
IRowsetIndex |
Yes |
Required for rowsets on an index; used for indexing functionality (set range, seek). |
|
IConvertType |
Yes |
Verifies whether the rowset supports specific data type conversions on its columns. |
Command (optional) |
ICommand |
Yes |
Used to execute queries. |
|
ICommandText |
Yes |
Used for defining the query text. |
|
ICommandProperties |
Yes |
Specifies required properties on rowsets returned by the command. |
|
ICommandWithParameters |
No |
Used for parameterized query execution. |
|
ICommandPrepare |
No |
Used for preparing a command to get metadata. |
Error (optional) |
IErrorRecords |
Yes |
Gets a pointer to an IErrorInfo interface for an error record. |
|
IErrorInfo |
Yes |
Gets a text description of an error record. |
Any object (optional) |
ISupportErrorInfo |
No |
Determines whether a specified interface supports error objects. |
See Also
Concepts
OLE DB Provider Reference for Distributed Queries