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 テーブル値パラメーターの型のサポート (プロパティ)」を参照してください。