Teilen über


ISSCommandWithParameters::SetParameterProperties in SQL Server Native Client (OLE DB)

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL verwaltete Instanz Azure Synapse Analytics Analytics Platform System (PDW)

Wichtig

Der SQL Server Native Client (häufig abgekürzt mit SNAC) wurde aus SQL Server 2022 (16.x) und SQL Server Management Studio 19 (SSMS) entfernt. Sowohl der OLE DB-Anbieter für den SQL Server Native Client (SQLNCLI oder SQLNCLI11) als auch der Microsoft OLE DB-Legacyanbieter für SQL Server (SQLOLEDB) werden für Neuentwicklungen nicht empfohlen. Verwenden Sie in Zukunft den neuen Microsoft OLE DB-Treiber für SQL Server (MSOLEDBSQL).

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.

Aufrufen von ISSCommandWithParameters::SetParameterProperties zum Angeben von Eigenschaften für einen Parameter, der nicht vom Typ DBTYPE_XML ist, oder DBTYPE_UDT gibt DB_E_ERRORSOCCURRED oder DB_S_ERRORSOCCURRED zurück und kennzeichnet das dwStatus-Feld aller DBPROPs, die in SSPARAMPROPS für diesen Parameter mit DBPROPSTATUS_NOTSET enthalten sind. 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)