Teilen über


OLE DB-Unterstützung von Tabellenwertparameter-Typen (Methoden)

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL verwaltete Instanz Azure Synapse Analytics Analytics Platform System (PDW)

OLE DB-Treiber herunterladen

Die folgenden Standard-OLE DB-Methoden unterstützen Tabellenwertparameter:

Methode Tabellenwertparameter-Unterstützung
ITableDefinitionWithConstraints::CreateTableWithConstraints Wird verwendet, wenn Sie den Typ des Tabellenwertparameters kennen und ein Tabellenwertparameter-Rowsetobjekt anhand der Typinformation instanziieren möchten.

Weitere Informationen finden Sie unter „Statisches Szenario“ im Artikel Rowsetobjekte für Tabellenwertparameter.
IOpenRowset::OpenRowset Wird verwendet, wenn Sie den Typ eines Tabellenwertparameters nicht kennen und ein Tabellenwertparameter-Rowsetobjekt anhand der vom Server abgerufenen Metadateninformationen instanziieren möchten.

Weitere Informationen finden Sie unter „Dynamisches Szenario“ im Artikel Rowsetobjekte für Tabellenwertparameter.
ISSCommandWithParameters::SetParameterInfo Zur Bezeichnung eines Tabellenwert-Befehlsparameters gibt der Consumer im pwszName-Element der DBPARAMBINDINFO-Struktur den Typ des Parameters als „table“ oder DBTYPE_TABLE an. ulParamSize ist auf ~0 festgelegt. Weitere Informationen finden Sie unter „Tabellenwertparameter-Spezifikation“ im Artikel Ausführen von Befehlen, die Tabellenwertparameter enthalten.
ISSCommandWithParameters::SetParameterProperties Legt spezielle Eigenschaften für Tabellenwertparameter fest, z. B. Schemaname, Typname, Spaltenreihenfolge und Standardspalten.

Der Consumer gibt die Ordnungszahl des Parameterwerts unter iOrdinal in der SSPARAMPROPS-Struktur an. Die angeforderte Eigenschaftengruppe ist DBPROPSET_SQLSERVERPARAMETER.
ISSCommandWithParameters::GetParameterInfo Ruft die Typen aller Parameter zu einem angegebenen Befehl ab.

Für Tabellenwertparameter verfügt das wType-Feld in der DBPARAMINFO-Struktur über den Typ DBTYPE_TABLE. Das ulParamSize-Feld wird auf ~0 festgelegt, um anzugeben, dass die Länge unbekannt ist.
ISSCommandWithParameters::GetParameterProperties Ruft weitere Typinformationen für Parameter des DBTYPE_TABLE-Typs ab.

Der Consumer gibt die Ordnungszahl des Parameterwerts im iOrdinal-Element der SSPARAMPROPS-Struktur an. Der Consumer kann beliebige Eigenschaften der DBPROPSET_SQLSERVERPARAMETER-Eigenschaftengruppe anfordern, die unter ISSCommandWithParameters::SetParameterProperties aufgeführt sind.

Da der Consumer den Tabellenwertparameter-Typ nicht kennt, muss der Anbieter für SSPROP_PARAM_TYPE_TYPENAME, SSPROP_PARAM_TYPE_SCHEMANAME und SSPROP_PARAM_TYPE_CATALOGNAME die korrekten Werte festlegen. Die übrigen Eigenschaften, SSPROP_PARAM_TABLE_DEFAULT_COLUMNS und SSPROP_PARAM_TABLE_COLUMN_SORT_ORDER, behalten ihre Standardwerte. Nachdem der Consumer den Tabellenwertparameter-Typnamen erkannt hat, erstellt er mithilfe von IOpenRowset::OpenRowset eine Instanz dieses Tabellenwertparameters. Dabei wird der Name des Tabellenwertparameter-Typs angegeben. Weitere Informationen finden Sie unter Tabellenwertparameter-Typermittlung.
IRowsetInfo::GetProperties Ruft Tabellenwertparameter-Rowseteigenschaften ab. Der Consumer kann diese Eigenschaften verwenden, um Bindungen optimal einzurichten.
IColumnsRowset::GetColumnsRowset Ruft Metadateninformationen zu einer SQL Server-Tabelle ab. Für Tabellenwertparameter stellt diese Schnittstelle ausführliche Metadateninformationen über jede Spalte bereit, darunter:

DBCOLUMN_FLAGS gibt die NULL-Zulässigkeit durch das DBCOLUMNFLAGS_ISNULLABLE-Bit an.

DBCOLUMN_ISUNIQUE gibt an, ob es sich bei der Spalte um eine Identitätsspalte handelt.

DBCOLUMN_COMPUTEMODE gibt an, ob die Spalte berechnet wird.
IAccessor::CreateAccessor Um ein Tabellenwertparameter-Rowsetobjekt an einen Befehlsparameter zu binden, erstellen Sie einen Accessor. Für das wType-Element wird dabei DBTYPE_TABLE festgelegt. Die DBOBJECT-Struktur enthält IID_IRowset oder eine beliebige andere gültige Rowsetobjekt-Schnittstelle im iid-Element. Die übrigen Felder werden ähnlich behandelt wie DBTYPE_IUNKNOWN.

Weitere Informationen

OLE DB-Typunterstützung für Tabellenwertparameter
Tabellenwertparameter-Rowseterstellung
Verwenden von Tabellenwertparametern (OLE DB)