OLE DB-Typunterstützung für Tabellenwertparameter
In diesem Thema wird die OLE DB-Typunterstützung für Tabellenwertparameter beschrieben.
Tabellenwertparameter-Rowsetobjekt
Sie können ein spezielles Rowsetobjekt für Tabellenwertparameter erstellen. Sie erstellen das Tabellenwertparameter-Rowsetobjekt mit ITableDefinitionWithConstraints::CreateTableWithConstraints oder IOpenRowset::OpenRowset. Hierzu legen Sie das eKind-Element des pTableID-Parameters auf DBKIND_GUID_NAME fest und geben für das guid-Element CLSID_ROWSET_INMEMORY an. Beim Einsatz von IOpenRowset::OpenRowset muss der Servertypname für den Tabellenwertparameter im pwszName-Element von pTableID angegeben werden. Das Tabellenwertparameter-Rowsetobjekt verhält sich wie ein reguläres Objekt des OLE DB-Anbieters von SQL Server Native Client.
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
Der neue Typ DBTYPE_TABLE stellt einen Tabellentyp dar. Dieser Typ gibt Tabellenwertparameter in verschiedenen OLE DB-Schnittstellen an, wo ein DBTYPE erforderlich ist.
#define DBTYPE_TABLE (143)
DBTYPE_TABLE hat das gleiche Format wie DBTYPE_IUNKNOWN. Es ist ein Zeiger auf ein Objekt im Datenpuffer. Um die Bindungen vollständig anzugeben, füllt der Consumer den DBOBJECT-Puffer, wobei iid auf eine der Schnittstellen des Rowsetobjekts (IID_IRowset) festgelegt wird. Wenn in den Bindungen die Angabe von DBOBJECT fehlt, wird IID_IRowset angenommen.
Konvertierungen anderer Typen in DBTYPE_TABLE bzw. von DBTYPE_TABLE in andere Typen werden nicht unterstützt. IConvertType::CanConvert gibt S_FALSE für nicht unterstützte Konvertierungen zurück, d. h. für jede Anforderung, mit der eine andere Konvertierung als DBTYPE_TABLE an DBTYPE_TABLE angefordert wird. Hierbei wird die Angabe von DBCONVERTFLAGS_PARAMETER für das Command-Objekt unterstellt.
Methoden
Weitere Informationen zu OLE DB-Methoden, die Tabellenwertparameter unterstützen, finden Sie unter OLE DB-Unterstützung von Tabellenwertparameter-Typen (Methoden).
Eigenschaften
Weitere Informationen zu OLE DB-Eigenschaften, die Tabellenwertparameter unterstützen, finden Sie unter OLE DB-Unterstützung von Tabellenwertparameter-Typen (Eigenschaften).