'ISSCommandWithParameters::GetParameterProperties' (OLE DB)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
Gibt ein Array aus SSPARAMPROPS-Eigenschaftensatzstrukturen zurück – einen SSPARAMPROPS-Eigenschaftensatz für jeden UDT- oder XML-Parameter.
Syntax
HRESULT GetParameterProperties(
DB_UPARAMS *pcParams,
SSPARAMPROPS **prgParamProperties);
Argumente
pcParams[out] [in]
Ein Zeiger auf den Arbeitsspeicher, der die Anzahl von SSPARAMPROPS-Strukturen enthält, die in prgParamPropertieszurückgegeben werden.
prgParamProperties[out]
Ein Zeiger auf den Arbeitsspeicher, in den ein Array aus SSPARAMPROPS-Strukturen zurückgegeben wird. Der Anbieter teilt Arbeitsspeicher für die Strukturen zu und gibt die Adresse an diesen Arbeitsspeicher zurück. Der Consumer gibt diesen Arbeitsspeicher mit IMalloc::Free
frei, wenn er die Strukturen nicht mehr benötigt. Bevor der Consumer IMalloc::Free
für prgParamProperties aufrufen kann, muss er auch für die vValue-Eigenschaft jeder DBPROP-Struktur VariantClear
aufrufen, um einem Arbeitsspeicherverlust vorzubeugen. Zu diesem kann es kommen, wenn die Variante einen Verweistyp wie z. B. BSTR enthält. Wenn pcParams bei der Ausgabe 0 (null) ist oder ein anderer Fehler als DB_E_ERRORSOCCURRED auftritt, teilt der Anbieter keinen Arbeitsspeicher zu und stellt sicher, dass prgParamProperties bei Ausgabe ein NULL-Zeiger ist.
Rückgabecodewerte
Die GetParameterProperties
-Methode gibt die gleichen Fehlercodes wie die OLE DB-Kernmethode ICommandProperties::GetProperties
zurück, mit der Ausnahme, dass DB_S_ERRORSOCCURRED und DB_E_ERRORSOCCURED nicht ausgelöst werden können.
Bemerkungen
Die ISSCommandWithParameters::GetParameterProperties
-Methode verhält sich in Bezug auf GetParameterInfo
konsistent. Wenn ISSCommandWithParameters::SetParameterProperties
oder SetParameterInfo
nicht aufgerufen wurden oder mit cParams gleich 0 aufgerufen wurden, leitet GetParameterInfo
Parameterinformationen ab und gibt sie zurück. Wenn ISSCommandWithParameters::SetParameterProperties
oder SetParameterInfo
für mindestens einen Parameter aufgerufen wurden, gibt die ISSCommandWithParameters::GetParameterProperties
-Methode Eigenschaften nur für diejenigen Parameter zurück, für die ISSCommandWithParameters::SetParameterProperties
aufgerufen wurde. Wenn ISSCommandWithParameters::SetParameterProperties
nach ISSCommandWithParameters::GetParameterProperties
oder GetParameterInfo
aufgerufen wird, geben nachfolgende Aufrufe von ISSCommandWithParameters::GetParameterProperties
die überschriebenen Werte für diejenigen Parameter zurück, für die die ISSCommandWithParameters::SetParameterProperties
-Methode aufgerufen wurde.
Die SSPARAMPROPS-Struktur ist folgendermaßen definiert:
struct SSPARAMPROPS {
DBORDINAL iOrdinal;
ULONG cPropertySets;
DBPROPSET *rgPropertySets;
};
Member | BESCHREIBUNG |
---|---|
iOrdinal | Die Ordnungszahl des übergebenen Parameters |
cPropertySets | Die Anzahl von DBPROPSET-Strukturen in rgPropertySets |
rgPropertySets | Ein Zeiger auf den Speicher, in den ein Array aus DBPROPSET-Strukturen zurückgegeben werden soll |