Condividi tramite


ISSCommandWithParameters::SetParameterProperties (OLE DB)

Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW)

Download del driver OLE DB

Imposta le proprietà dei parametri per i singoli parametri in base al numero ordinale oppure imposta proprietà dei parametri bulk specificando una matrice di strutture SSPARAMPROPS.

Sintassi

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

Argomenti

cParams[in]
Numero di strutture SSPARAMPROPS nella matrice rgParamProperties. Se questo numero è zero, ISSCommandWithParameters::SetParameterProperties eliminerà tutte le proprietà che possono essere state specificate per i parametri nel comando.

rgParamProperties[in]
Matrice di strutture SSPARAMPROPS da impostare.

Valori del codice restituito

Il metodo ISSCommandWithParameters::SetParameterProperties restituisce gli stessi codici di errore del metodo ICommandProperties::SetProperties OLE DB di base.

Osservazioni:

L'impostazione delle proprietà del parametro con questo metodo è consentita per i singoli parametri in base al numero ordinale oppure con una sola chiamata a ISSCommandWithParameters::SetParameterProperties dopo che la struttura SSPARAMPROPS è stata compilata dalla matrice della proprietà.

Il metodo SetParameterInfo deve essere chiamato prima del metodo ISSCommandWithParameters::SetParameterProperties. Se si chiama SetParameterProperties(0, NULL), si cancellano tutte le proprietà di parametro specificate, mentre se si chiama SetParameterInfo(0,NULL,NULL), si cancellano tutte le informazioni di parametro che includono le proprietà che potrebbero essere associate a un parametro.

Se si chiama ISSCommandWithParameters::SetParameterProperties per specificare le proprietà per un parametro che non è del tipo DBTYPE_XML o DBTYPE_UDT viene restituito DB_E_ERRORSOCCURRED o DB_S_ERRORSOCCURRED e il campo dwStatus di tutte le matrici DBPROP contenute nella struttura SSPARAMPROPS per quel parametro viene contrassegnato con DBPROPSTATUS_NOTSET. È necessario attraversare la matrice DBPROP di ogni proprietà DBPROPSET contenuta nella struttura SSPARAMPROPS per individuare il parametro al quale DB_E_ERRORSOCCURRED o DB_S_ERRORSOCCURRED fa riferimento.

Se viene chiamato ISSCommandWithParameters::SetParameterProperties per specificare le proprietà di parametri le cui informazioni non sono state ancora impostate con SetParameterInfo, il provider restituisce E_UNEXPECTED con il messaggio di errore seguente:

Impossibile chiamare il metodo SetParameterProperties per i parametri specificati senza chiamare prima il metodo SetParameterInfo. È necessario impostare le informazioni sui parametri prima di impostare le proprietà dei parametri stessi.

Se la chiamata a ISSCommandWithParameters::SetParameterProperties contiene alcuni parametri per i quali le informazioni sono state impostate e alcuni parametri per i quali non sono state impostate, le proprietà dwStatus nella struttura DBPROPSET del set di proprietà SSPARAMPROPS verranno restituite con DBSTATUS_NOTSET.

La struttura SSPARAMPROPS viene definita nel modo seguente:

struct SSPARAMPROPS {

DBORDINAL iOrdinal;

ULONG cPropertySets;

DBPROPSET *rgPropertySets;

};

I miglioramenti apportati al motore di database a partire da SQL Server 2012 (11.X) consentono a ISSCommandWithParameters::SetParameterProperties di ottenere descrizioni più accurate dei risultati previsti. È possibile che questi risultati più accurati differiscano dai valori restituiti da ISSCommandWithParameters::SetParameterProperties nelle versioni precedenti di SQL Server. Per altre informazioni, vedere Metadata Discovery.

Membro Descrizione
iOrdinal Numero ordinale del parametro passato.
cPropertySets Numero di strutture DBPROPSET in rgPropertySets.
rgPropertySets Puntatore alla memoria nel quale restituire una matrice di strutture DBPROPSET.

Vedi anche

ISSCommandWithParameters (OLE DB)