Condividi tramite


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

Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure azure Synapse Analytics Analytics Platform System (PDW)

Importante

SQL Server Native Client (spesso abbreviato SNAC) è stato rimosso da SQL Server 2022 (16.x) e da SQL Server Management Studio 19 (SSMS). Il provider OLE DB di SQL Server Native Client (SQLNCLI o SQLNCLI11) e il provider OLE DB legacy Microsoft per SQL Server (SQLOLEDB) non sono consigliati per lo sviluppo di nuove applicazioni. In futuro, passare al nuovo driver Microsoft OLE DB (MSOLEDBSQL) per SQL Server.

Restituisce una matrice di strutture di set di proprietà SSPARAMPROPS, un set di proprietà SSPARAMPROPS per ogni tipo definito dall'utente o parametro XML.

Sintassi

HRESULT GetParameterProperties(  
      DB_UPARAMS *pcParams,  
      SSPARAMPROPS **prgParamProperties);  

Argomenti

pcParams[out][in]
Puntatore alla memoria contenente il numero di strutture SSPARAMPROPS restituite in prgParamProperties.

prgParamProperties[out]
Puntatore alla memoria nel quale viene restituita una matrice di strutture SSPARAMPROPS. Il provider alloca memoria per le strutture e restituisce l'indirizzo a questa memoria; il consumer rilascia questa memoria con IMalloc::Free quando non necessita più delle strutture. Prima di chiamare IMalloc::Free per prgParamProperties, il consumer deve anche chiamare VariantClear per la proprietà vValue di ogni struttura DBPROP per evitare una perdita di memoria nei casi in cui la variante contiene un tipo riferimento ,ad esempio un BSTR. Se pcParams è zero nell'output o si verifica un errore diverso da DB_E_ERRORSOCCURRED, il provider non alloca memoria e garantisce che prgParamProperties sia un puntatore Null nell'output.

Valori del codice restituito

Il metodo GetParameterProperties restituisce gli stessi codici di errore del metodo OLE DB ICommandProperties::GetProperties di base, ad eccezione del fatto che non è possibile generarne DB_S_ERRORSOCCURRED e DB_E_ERRORSOCCURED.

Osservazioni:

ISSCommandWithParameters::GetParameterProperties si comporta in modo coerente rispetto a GetParameterInfo. Se ISSCommandWithParameters::SetParameterProperties o SetParameterInfo non sono stati chiamati o sono stati chiamati con cParams uguale a zero, GetParameterInfo deriva le informazioni sui parametri e lo restituisce. Se è stato chiamato ISSCommandWithParameters::SetParameterProperties o SetParameterInfo per almeno un parametro, ISSCommandWithParameters::GetParameterProperties restituisce proprietà solo per i parametri per cui è stato chiamato ISSCommandWithParameters::SetParameterProperties . Se ISSCommandWithParameters::SetParameterProperties viene chiamato dopo ISSCommandWithParameters::GetParameterProperties o GetParameterInfo, le chiamate successive a ISSCommandWithParameters::GetParameterProperties restituiscono i valori sottoposti a override per tali parametri per i quali è stato chiamato ISSCommandWithParameters::SetParameterProperties.

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.

Vedi anche

ISSCommandWithParameters (OLE DB)