Condividi tramite


ISSCommandWithParameters::SetParameterProperties (OLE DB)

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

Sintassi

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

Argomenti

  • cParams[in]
    Numero di strutture SSPARAMPROPS della matrice rgParamProperties. Se questo numero è zero, ISSCommandWithParameters::SetParameterProperties eliminerà tutte le proprietà che avrebbero potuto essere specificate per qualsiasi parametro nel comando.

  • rgParamProperties[in]
    Matrice di strutture SSPARAMPROPS da impostare.

Valori di codice restituiti

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

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 generata 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 viene contrassegnato il campo dwStatus di tutte le proprietà DBPROP contenute nella struttura SSPARAMPROPS per quel parametro 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 sono state impostate le informazioni e alcuni parametri per i quali non sono state impostate, le proprietà dwStatus del set di proprietà DBPROPSET della struttura SSPARAMPROPS verranno restituite con DBSTATUS_NOTSET.

La struttura SSPARAMPROPS viene definita nel modo seguente:

struct SSPARAMPROPS {

DBORDINAL iOrdinal;

ULONG cPropertySets;

DBPROPSET *rgPropertySets;

};

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

Riferimento