分散クエリから呼び出される OLE DB オブジェクト
次の表は、Transact-SQL 分散クエリから呼び出される OLE DB オブジェクトとインターフェイスを示しています。OLE DB プロバイダを Transact-SQL 分散クエリで使用するには、そのプロバイダがオブジェクトとインターフェイスの最小限のセットをサポートしている必要があります。それらのオブジェクトとインターフェイスについては、次の表の "必須/オプション" 列に "必須" と記しています。"必須/オプション" 列が "オプション" のオブジェクトとインターフェイスは、拡張分散クエリ機能をサポートするためにのみ必要なものです。インターフェイスがプロバイダによってサポートされていない場合、関連する Transact-SQL 機能はサポートされません。たとえば、IRowsetLocate インターフェイスと IRowsetChange インターフェイスがサポートされていない場合、リモート テーブルに対する UPDATE ステートメントまたは DELETE ステートメントは機能しません。
オブジェクト |
インターフェイス |
必須/オプション |
説明 |
---|---|---|---|
Data Source |
IDBInitialize |
必須 |
データおよびセキュリティ コンテキストの初期化とセットアップを行います。 |
|
IDBCreateSession |
必須 |
DB Session オブジェクトを作成します。 |
|
IDBProperties |
必須 |
プロバイダの機能に関する情報を取得し、初期化プロパティを設定します。 |
|
IDBInfo |
オプション |
プロバイダでサポートされる SQL 構文に関する情報を取得します。 |
DB Session |
IDBSchemaRowset |
オプション |
テーブルおよび列のメタデータを取得します。必要となる行セットは TABLES と COLUMNS です。その他、TABLES_INFO、CATALOGS、INDEXES、STATISTICS、TABLE_STATISTICS、VIEWS、PRIMARY_KEYS、TABLE_PRIVILEGES、および COLUMN_PRIVILEGES もあれば使用されます。 |
|
IOpenRowset |
必須 |
テーブル、インデックス、またはヒストグラムについての行セットを開きます。 |
|
IGetDataSource |
必須 |
DB Session オブジェクトからデータ ソース オブジェクトへ戻ります。 |
|
IDBCreateCommand |
オプション |
Command オブジェクト (クエリ) を作成します。 |
|
ITransactionLocal |
オプション |
プロバイダでトランザクションを開始します。 |
|
ITransactionJoin |
オプション |
分散トランザクション サポートに使用されます。このインターフェイスがサポートされていない場合、ユーザー トランザクションの中でリモート プロバイダを更新できません。 |
Rowset (テーブル) |
IRowset |
必須 |
行をスキャンします。 |
|
IAccessor |
必須 |
行セット内の列にバインドします。 |
|
IColumnsInfo |
必須 |
行セット内の列に関する情報を取得します。 |
|
IRowsetInfo |
必須 |
行セット プロパティに関する情報を取得します。 |
|
IRowsetLocate |
オプション |
UPDATE 操作または DELETE 操作とインデックス ベースの参照に必要です。 |
|
IRowsetChange |
オプション |
テーブルに対する INSERT、UPDATE、または DELETE の各操作に必要です。ベース テーブルに対する行セットは、INSERT、UPDATE、または DELETE の各ステートメントをサポートするために、このインターフェイスをサポートしている必要があります。 |
|
IConvertType |
必須 |
ある行セットが、その行セットの列に対する特定のデータ型変換をサポートしているかどうかを確認します。 |
Rowset (インデックス) |
IRowset |
必須 |
行をスキャンします。 |
|
IAccessor |
必須 |
行セット内の列にバインドします。 |
|
IColumnsInfo |
必須 |
行セット内の列に関する情報を取得します。 |
|
IRowsetInfo |
必須 |
行セット プロパティに関する情報を取得します。 |
|
IRowsetIndex |
必須 |
インデックスについての行セットに必要で、インデックス機能 (範囲の設定、シーク) に使用されます。 |
|
IConvertType |
必須 |
行セットが、その行セット内の列の特定のデータ型変換をサポートしているかどうかを確認します。 |
Command (オプション) |
ICommand |
必須 |
クエリの実行に使用されます。 |
|
ICommandText |
必須 |
クエリ テキストの定義に使用されます。 |
|
ICommandProperties |
必須 |
コマンドが返す行セットに対して必要なプロパティを指定します。 |
|
ICommandWithParameters |
オプション |
パラメータ付きのクエリの実行に使用されます。 |
|
ICommandPrepare |
オプション |
メタデータを取得するコマンドを準備するために使用されます。 |
エラー (オプション) |
IErrorRecords |
必須 |
エラー レコード用の IErrorInfo インターフェイスへのポインタを取得します。 |
|
IErrorInfo |
必須 |
エラー レコードについての説明テキストを取得します。 |
任意のオブジェクト (オプション) |
ISupportErrorInfo |
オプション |
指定したインターフェイスがエラー オブジェクトをサポートしているかどうかを判定します。 |