Condividi tramite


ISSCommandWithParameters::SetParameterProperties (OLE DB)

Imposta le proprietà dei parametri per ogni parametro in base all'ordinale o imposta le 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 potrebbero essere state specificate per tutti i parametri nel comando.

rgParamProperties[in]
Matrice di strutture SSPARAMPROPS da impostare.

Valori del codice restituito

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

Osservazioni:

L'impostazione delle proprietà dei parametri con questo metodo è consentita per ogni parametro in base all'ordinale o con una singola ISSCommandWithParameters::SetParameterProperties chiamata dopo la compilazione di SSPARAMPROPS dalla matrice di proprietà.

Il metodo SetParameterInfo deve essere chiamato prima di chiamare il ISSCommandWithParameters::SetParameterProperties metodo . La chiamata SetParameterProperties(0, NULL) cancella tutte le proprietà dei parametri specificate, mentre la chiamata SetParameterInfo(0,NULL,NULL) cancella tutte le informazioni sui parametri, incluse le proprietà che potrebbero essere associate a un parametro.

La chiamata ISSCommandWithParameters::SetParameterProperties a per specificare le proprietà per un parametro che non è di tipo DBTYPE_XML o DBTYPE_UDT restituisce DB_E_ERRORSOCCURRED o DB_S_ERRORSOCCURRED e contrassegna il campo dwStatus di tutti i DBPROP contenuti in SSPARAMPROPS per tale parametro con DBPROPSTATUS_NOTSET. La matrice DBPROP di ogni DBPROPSET contenuta in SSPARAMPROPS deve essere attraversata per rilevare il parametro a cui fa riferimento il DB_E_ERRORSOCCURRED o DB_S_ERRORSOCCURRED.

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

Il metodo SetParameterProperties non può essere chiamato per i parametri specificati senza prima chiamare il metodo SetParameterInfo. Le informazioni sui parametri devono essere impostate prima di impostare le proprietà del parametro.

Se la chiamata a ISSCommandWithParameters::SetParameterProperties contiene alcuni parametri in cui sono state impostate le informazioni sui parametri e alcuni parametri in cui le informazioni sui parametri non sono state impostate, le proprietà dwStatus nel DBPROPSET del set di proprietà SSPARAMPROPS restituiranno 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 consentono a ISSCommandWithParameters::SetParameterProperties di ottenere descrizioni più accurate dei risultati previsti. Questi risultati più accurati possono differire dai valori restituiti da ISSCommandWithParameters::SetParameterProperties nelle versioni precedenti di SQL Server. Per altre informazioni, vedere Individuazione metadati.

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.

Vedere anche

ISSCommandWithParameters (OLE DB)