'ISSCommandWithParameters::GetParameterProperties' (OLE DB)
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 prgParamProperties zurückgegeben werden.prgParamProperties[out]
Ein Zeiger auf den Arbeitsspeicher, in den ein Array aus SSPARAMPROPS-Strukturen zurückgegeben wird. Der Anbieter teilt Speicher für die Strukturen zu und gibt die Adresse an den Arbeitsspeicher zurück. Der Consumer gibt diesen Speicher 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 VariantClear für die vValue-Eigenschaft jeder DBPROP-Struktur aufrufen, um einem Speicherverlust vorzubeugen. Zu diesem kann es kommen, wenn die Variante einen Verweistyp enthält (wie beispielsweise BSTR). 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 dieselben Fehlercodes zurück wie die OLE DB ICommandProperties::GetProperties-Methode, allerdings können DB_S_ERRORSOCCURRED und DB_E_ERRORSOCCURED nicht ausgelöst werden.
Hinweise
ISSCommandWithParameters::GetParameterProperties verhält sich in Bezug auf GetParameterInfo konsistent. Wenn ISSCommandWithParameters::SetParameterProperties und SetParameterInfo nicht aufgerufen wurden oder mit einem Wert von 0 (null) für cParams aufgerufen wurden, leitet GetParameterInfo Parameterinformationen ab und gibt diese zurück. Wenn ISSCommandWithParameters::SetParameterProperties oder SetParameterInfo für mindestens einen Parameter aufgerufen wurde, gibt ISSCommandWithParameters::GetParameterProperties Eigenschaften nur für die 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 jene Parameter zurück, für die ISSCommandWithParameters::SetParameterProperties 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 |