Freigeben über


'ISSCommandWithParameters::SetParameterProperties' (OLE DB)

Legt die Parametereigenschaften auf einer Einzelparameterbasis nach Ordnungszahl fest oder legt Massenparametereigenschaften durch Angabe eines Arrays von SSPARAMPROPS-Strukturen fest.

Syntax

HRESULT SetParameterProperties(
      DB_UPARAMS cParams, 
      SSPARAMPROPS rgParamProperties[]);

Argumente

  • cParams[in]
    Die Anzahl der SSPARAMPROPS-Strukturen im rgParamProperties-Array. Wenn diese Anzahl NULL ist, löscht ISSCommandWithParameters::SetParameterProperties alle Eigenschaften, die für Parameter im Befehl möglicherweise festgelegt wurden.

  • rgParamProperties[in]
    Ein Array von SSPARAMPROPS-Strukturen, die festgelegt werden sollen.

Rückgabecodewerte

Die ISSCommandWithParameters::SetParameterProperties-Methode gibt die gleichen Fehlercodes wie die ICommandProperties::SetProperties-Core-OLE DB-Methode zurück.

Hinweise

Das Festlegen von Parametereigenschaften mit dieser Methode ist auf Einzelparameterbasis nach Ordnungszahl oder mit einem einzelnen ISSCommandWithParameters::SetParameterProperties-Aufruf zulässig, sobald SSPARAMPROPS aus dem Eigenschaftsarray aufgebaut wurde.

Die SetParameterInfo-Methode muss aufgerufen werden, bevor die ISSCommandWithParameters::SetParameterProperties-Methode aufgerufen wird. Durch Aufrufen von SetParameterProperties(0, NULL) werden alle angegebenen Parametereigenschaften gelöscht, während der Aufruf von SetParameterInfo(0,NULL,NULL) alle Parameterinformationen löscht, einschließlich Eigenschaften, die einem Parameter zugeordnet sind.

Durch Aufrufen von ISSCommandWithParameters::SetParameterProperties zum Festlegen von Eigenschaften für einen Parameter, der nicht dem DBTYPE_XML- Oder DBTYPE_UDT-Typ entspricht, wird DB_E_ERRORSOCCURRED oder DB_S_ERRORSOCCURRED zurückgegeben und das dwStatus-Feld aller in SSPARAMPROPS enthaltenen DBPROPs für diesen Parameter mit DBPROPSTATUS_NOTSET markiert. Das DBPROP-Array jedes in SSPARAMPROPS enthaltenen DBPROPs sollte durchsucht werden, um zu ermitteln, auf welchen Parameter DB_E_ERRORSOCCURRED bzw. DB_S_ERRORSOCCURRED verweist.

Wenn ISSCommandWithParameters::SetParameterProperties aufgerufen wird, um die Eigenschaften von Parametern anzugeben, deren Parameterinformationen noch nicht mit SetParameterInfo festgelegt wurden, gibt der Anbieter E_UNEXPECTED mit der folgenden Fehlermeldung zurück:

Die SetParameterProperties-Methode kann für die angegebenen Parameter nicht aufgerufen werden, ohne dass zunächst die SetParameterInfo-Methode aufgerufen wird. Die Parameterinformationen müssen vor dem Festlegen der Parametereigenschaften festgelegt werden.

Wenn der Aufruf für ISSCommandWithParameters::SetParameterProperties einige Parameter enthält, für die die Parameterinformationen festgelegt wurden, und einige Parameter ohne Parameterinformationen, werden die dwStatus-Eigenschaften im DBPROPSET der SSPARAMPROPS-Eigenschaft mit DBSTATUS_NOTSET zurückgegeben.

Die SSPARAMPROPS-Struktur ist folgendermaßen definiert:

struct SSPARAMPROPS {

DBORDINAL iOrdinal;

ULONG cPropertySets;

DBPROPSET *rgPropertySets;

};

Element

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.