Freigeben über


'ISSCommandWithParameters::SetParameterProperties' (OLE DB)

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

OLE DB-Treiber herunterladen

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 0 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 OLE DB-Kernmethode ICommandProperties::SetProperties zurück.

Bemerkungen

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 Eigenschaftenarray 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 Typ DBTYPE_XML oder DBTYPE_UDT 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 des SSPARAMPROPS-Eigenschaftensatzes mit DBSTATUS_NOTSET zurückgegeben.

Die SSPARAMPROPS-Struktur ist folgendermaßen definiert:

struct SSPARAMPROPS {

DBORDINAL iOrdinal;

ULONG cPropertySets;

DBPROPSET *rgPropertySets;

};

Verbesserungen an der Datenbank-Engine ab SQL Server 2012 (11.x) 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 SSCommandWithParameters::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

Weitere Informationen

ISSCommandWithParameters (OLE DB)