Freigeben über


'ISSCommandWithParameters::SetParameterProperties' (OLE DB)

Legt die Parametereigenschaften für einzelne Parameter 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;

};

Verbesserungen am Datenbankmodul ab SQL Server 2012 ermöglichen das Abrufen genauerer Beschreibungen der erwarteten Ergebnisse durch ISSCommandWithParameters::SetParameterProperties. Diese genaueren Ergebnisse unterscheiden sich möglicherweise von den Werten, die in früheren Versionen von SQL Server von ISSCommandWithParameters::SetParameterProperties zurückgegeben wurden. Weitere Informationen finden Sie unter Metadatenermittlung.

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)