OLE DB テーブル値パラメータの型のサポート

このトピックでは、テーブル値パラメータに対する OLE DB 型のサポートについて説明します。

テーブル値パラメータの行セット オブジェクト

テーブル値パラメータの特殊な行セット オブジェクトを作成できます。テーブル値パラメータの行セット オブジェクトは、ITableDefinitionWithConstraints::CreateTableWithConstraints または IOpenRowset::OpenRowset を使用して作成します。そのためには、pTableID パラメータの eKind メンバに DBKIND_GUID_NAME を設定し、CLSID_ROWSET_INMEMORY を guid メンバとして指定します。テーブル値パラメータのサーバーの型名は、IOpenRowset::OpenRowset の使用時に pTableID の pwszName メンバに指定する必要があります。テーブル値パラメータの行セット オブジェクトは、標準の SQL Server Native Client OLE DB プロバイダ オブジェクトと同様に動作します。

const GUID CLSID_ROWSET_TVP = 
{0xc7ef28d5, 0x7bee, 0x443f, {0x86, 0xda, 0xe3, 0x98, 0x4f, 0xcd, 0x4d, 0xf9}};

CoType RowsetTVP
{
[mandatory] interface IAccessor;
[mandatory] interface IColumnsInfo;
[mandatory] interface IConvertType;
[mandatory] interface IRowset;
[mandatory] interface IRowsetInfo;
[optional]  interface IColumnsRowset;
[optional]  interface IRowsetChange;
[optional]  interface ISupportErrorInfo;
};

DBTYPE_TABLE

新しい型 DBTYPE_TABLE はテーブル型を表します。この型は、DBTYPE を必要とするさまざまな OLE DB インターフェイスのテーブル値パラメータを示します。

#define DBTYPE_TABLE (143)

DBTYPE_TABLE の形式は、DBTYPE_IUNKNOWN と同じです。これは、データ バッファ内のオブジェクトへのポインタです。バインドでの完全な指定のため、コンシューマは、行セット オブジェクト インターフェイス (IID_IRowset) の 1 つに iid を設定して、DBOBJECT バッファをいっぱいにします。DBOBJECT がバインドで指定されない場合は、IID_IRowset が想定されます。

DBTYPE_TABLE とその他の型との間の変換はサポートされません。IConvertType::CanConvert は、DBTYPE_TABLE から DBTYPE_TABLE への変換以外の要求に対するサポートされない変換について、S_FALSE を返します。これは、Command オブジェクトの DBCONVERTFLAGS_PARAMETER を想定します。

メソッド

テーブル値パラメータをサポートする OLE DB メソッドの詳細については、「OLE DB テーブル値パラメータの型のサポート (メソッド)」を参照してください。

プロパティ

テーブル値パラメータをサポートする OLE DB プロパティの詳細については、「OLE DB テーブル値パラメータの型のサポート (プロパティ)」を参照してください。