ISSCommandMedParametrar::SetParameterProperties (OLE DB)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalysplattformssystem (PDW)SQL-databas i Microsoft Fabric

Ladda ned OLE DB-drivrutins

Sätter parameteregenskaperna per parameter med ordinal, eller sätter bulkparameteregenskaper genom att specificera en array av SSPARAMPROPS-strukturer.

Syntax

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

Arguments

cParams[in]
Antalet SSPARAMPROPS-strukturer i rgParamProperties-arrayen . Om detta tal är noll kommer ISSCommandWithParameters::SetParameterProperties att ta bort alla egenskaper som kan ha specificerats för några parametrar i kommandot.

rgParamProperties[in]
En array av SSPARAMPROPS-strukturer ska sättas.

Returnera kodvärden

ISSCommandWithParameters::SetParameterProperties-metoden returnerar samma felkoder som kärnmetoden OLE DB ICommandProperties::SetProperties.

Anmärkningar

Att sätta parameteregenskaper med denna metod är tillåtet per parameter per ordinal, eller med ett enda ISSCommandWithParameters::SetParameterProperties-anrop när SSPARAMPROPS har byggts från egenskapsarrayen.

Metoden SetParameterInfo måste anropas innan metoden ISSCommandWithParameters::SetParameterProperties anropas. Anrop SetParameterProperties(0, NULL) rensar alla specificerade parameteregenskaper, medan anrop SetParameterInfo(0,NULL,NULL) rensar all parameterinformation inklusive eventuella egenskaper som kan vara kopplade till en parameter.

Att anropa ISSCommandWithParameters::SetParameterProperties för att specificera egenskaper för en parameter som inte är av typ DBTYPE_XML eller DBTYPE_UDT returnerar DB_E_ERRORSOCCURRED eller DB_S_ERRORSOCCURRED och markerar dwStatus-fältet för alla DBPROP:er som finns i SSPARAMPROPS för den parametern med DBPROPSTATUS_NOTSET. DBPROP-arrayen för varje DBPROPSET som finns i SSPARAMPROPS bör genomsökas för att upptäcka vilken parameter DB_E_ERRORSOCCURRED eller DB_S_ERRORSOCCURRED syftar på.

Om ISSCommandWithParameters::SetParameterProperties anropas för att specificera egenskaperna för parametrar vars parameterinformation ännu inte har satts med SetParameterInfo, returnerar leverantören E_UNEXPECTED med följande felmeddelande:

Metoden SetParameterProperties kan inte anropas för de specificerade parametrarna utan att först anropa metoden SetParameterInfo. Parameterinformationen måste sättas innan parameteregenskaperna ställs in.

Om anropet till ISSCommandWithParameters::SetParameterProperties innehåller vissa parametrar där parameterinformationen har satts, och vissa parametrar där parameterinformationen inte har satts, kommer dwStatus-egenskaperna i DBPROPSET av SSPARAMPROPS-egenskapsuppsättningen att returnera med DBSTATUS_NOTSET.

SSPARAMPROPS-strukturen definieras enligt följande:

struct SSPARAMPROPS {

DBORDINAL iOrdinal;

ULONG cPropertySets;

DBPROPSET *rgPropertySets;

};

Förbättringar i databasmotorn med start i SQL Server 2012 (11.x) gör det möjligt för ISSCommandWithParameters::SetParameterProperties att få mer exakta beskrivningar av de förväntade resultaten. Dessa mer exakta resultat kan skilja sig från de värden som returneras av ISSCommandWithParameters::SetParameterProperties i tidigare versioner av SQL Server. För mer information, se Metadata Discovery.

Medlem Description
iOrdinal Ordinalen för den passerade parametern.
cPropertySets Antalet DBPROPSET-strukturer i rgPropertySets.
rgPropertySets En pekare till minnet för att returnera en array av DBPROPSET-strukturer.

Se även

ISSCommandWithParameters (OLE DB)