Freigeben über


'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

Siehe auch

Verweis

ISSCommandWithParameters (OLE DB)