OLE DB-Unterstützung von Tabellenwertparameter-Typen (Methoden)
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 zu diesem "statischen Szenario" finden Sie unter Tabellenwertparameter-Rowseterstellung. |
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 zu diesem "dynamischen Szenario" finden Sie unter Tabellenwertparameter-Rowseterstellung. |
ISSCommandWithParameters::SetParameterInfo |
Zur Bezeichnung eines Tabellenwertparameter-Befehlsparameters gibt der Consumer im pwszName-Element der DBPARAMBINDINFO-Struktur den Typ des Parameters als "Tabelle" oder DBTYPE_TABLE an. Der ulParamSize-Wert wird auf ~0 festgelegt. Weitere Informationen finden Sie unter "Tabellenwertparameter-Spezifikation" in 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:
|
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. |