Freigeben über


'ISSCommandWithParameters::GetParameterProperties' (OLE DB)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

OLE DB-Treiber herunterladen

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

Weitere Informationen

ISSCommandWithParameters (OLE DB)