Condividi tramite


CDynamicParameterAccessor (classe)

Simile a CDynamicAccessor ma ottiene le informazioni sui parametri da impostare chiamando l'interfaccia ICommandWithParameters .

Sintassi

class CDynamicParameterAccessor : public CDynamicAccessor

Requisiti

Intestazione: atldbcli.h

Membri

Metodi

Nome Descrizione
CDynamicParameterAccessor Costruttore.
GetParam Recupera i dati del parametro dal buffer.
GetParamCount Recupera il numero di parametri nella funzione di accesso.
GetParamIO Determina se il parametro specificato è un parametro di input o output.
GetParamLength Recupera la lunghezza del parametro specificato archiviato nel buffer.
GetParamName Recupera il nome di un parametro specificato.
GetParamStatus Recupera lo stato del parametro specificato archiviato nel buffer.
GetParamString Recupera i dati string del parametro specificato archiviato nel buffer.
GetParamType Recupera il tipo di dati di un parametro specificato.
SetParam Imposta il buffer usando i dati del parametro.
SetParamLength Imposta la lunghezza del parametro specificato archiviato nel buffer.
SetParamStatus Imposta lo stato del parametro specificato archiviato nel buffer.
SetParamString Imposta i dati string del parametro specificato archiviato nel buffer.

Osservazioni:

Il provider deve supportare ICommandWithParameters in modo che il consumer usi questa classe.

Le informazioni di parametro vengono archiviate in un buffer creato e gestito da questa classe. Per ottenere i dati dei parametri dal buffer, usare GetParam e GetParamType.

Per un esempio che illustra come usare questa classe per eseguire una stored procedure di SQL Server e ottenere i valori dei parametri di output, vedere il codice di esempio DynamicConsumer nel repository Microsoft VCSamples in GitHub.

CDynamicParameterAccessor::CDynamicParameterAccessor

Costruttore.

Sintassi

typedef CDynamicParameterAccessor _ParamClass;
CDynamicParameterAccessor(
   DBBLOBHANDLINGENUM eBlobHandling = DBBLOBHANDLING_DEFAULT,
   DBLENGTH nBlobSize = 8000 )
   : CDynamicAccessor(eBlobHandling, nBlobSize )

Parametri

eBlobHandling
Specifica la modalità di gestione dei dati BLOB. Il valore predefinito è DBBLOBHANDLING_DEFAULT. Per una descrizione dei valori DBBLOBHANDUM, vedere CDynamicAccessor::SetBlobHandling .

nBlobSize
Dimensioni massime DEL BLOB in byte; i dati delle colonne su questo valore vengono considerati come BLOB. Il valore predefinito è 8.000. Per informazioni dettagliate, vedere CDynamicAccessor::SetBlobSizeLimit .

Osservazioni:

Per altre informazioni sulla gestione dei BLOB, vedere il costruttore CDynamicAccessor::CDynamicAccessor .

CDynamicParameterAccessor::GetParam

Recupera i dati non di stringa per un parametro specificato dal buffer dei parametri.

Sintassi

template <class ctype>bool GetParam(DBORDINAL nParam,
   ctype* pData) const throw();

template <class ctype> bool GetParam(TCHAR* pParamName,
   ctype* pData) const throw();

void* GetParam(DBORDINAL nParam) const throw();

void* GetParam(TCHAR* pParamName) const throw();

Parametri

ctype
Parametro basato su modelli che rappresenta il tipo di dati.

nParam
[in] Numero di parametro (offset da 1). Il parametro 0 è riservato ai valori restituiti. Il numero di parametro è l'indice del parametro in base al relativo ordine nella chiamata SQL o nella chiamata della stored procedure. Per un esempio, vedere SetParam .

pParamName
[in] Nome del parametro.

pData
[out] Puntatore alla memoria contenente i dati recuperati dal buffer.

Valore restituito

Per le versioni non correlate, punta alla memoria contenente i dati recuperati dal buffer. Per le versioni con modelli, restituisce true l'esito positivo o false negativo.

Usare GetParam per recuperare i dati dei parametri non di stringa dal buffer. Usare GetParamString per recuperare i dati dei parametri stringa dal buffer.

CDynamicParameterAccessor::GetParamCount

Recupera il numero di parametri archiviati nel buffer.

Sintassi

DB_UPARAMS GetParamCount() const throw();

Valore restituito

Numero di parametri.

CDynamicParameterAccessor::GetParamIO

Determina se il parametro specificato è un parametro di input o output.

Sintassi

bool GetParamIO(DBORDINAL nParam,
   DBPARAMIO* pParamIO) const throw();

Parametri

nParam
[in] Numero di parametro (offset da 1). Il parametro 0 è riservato ai valori restituiti. Il numero di parametro è l'indice del parametro in base al relativo ordine nella chiamata SQL o nella chiamata della stored procedure. Per un esempio, vedere SetParam .

pParamIO
Puntatore alla variabile contenente il DBPARAMIO tipo (input o output) del parametro specificato. Viene definita come segue:

typedef DWORD DBPARAMIO;

enum DBPARAMIOENUM {
    DBPARAMIO_NOTPARAM   = 0,
    DBPARAMIO_INPUT      = 0x1,
    DBPARAMIO_OUTPUT     = 0x2
};

Valore restituito

Restituisce true in caso di esito positivo o false negativo.

CDynamicParameterAccessor::GetParamLength

Recupera la lunghezza del parametro specificato archiviato nel buffer.

Sintassi

bool GetParamLength(DBORDINAL nParam,
   DBLENGTH* pLength);

DBLENGTH* GetParamLength(DBORDINAL nParam) const throw();

Parametri

nParam
[in] Numero di parametro (offset da 1). Il parametro 0 è riservato ai valori restituiti. Il numero di parametro è l'indice del parametro in base al relativo ordine nella chiamata SQL o nella chiamata della stored procedure. Per un esempio, vedere SetParam .

pLength
[out] Puntatore alla variabile contenente la lunghezza in byte del parametro specificato.

Osservazioni:

Il primo override restituisce true l'esito positivo o false negativo. Il secondo override punta alla memoria che contiene la lunghezza del parametro.

CDynamicParameterAccessor::GetParamName

Recupera il nome del parametro specificato.

Sintassi

LPOLESTR GetParamName(DBORDINAL nParam) const throw();

Parametri

nParam
[in] Numero di parametro (offset da 1). Il parametro 0 è riservato ai valori restituiti. Il numero di parametro è l'indice del parametro in base al relativo ordine nella chiamata SQL o nella chiamata della stored procedure. Per un esempio, vedere SetParam .

Valore restituito

Nome del parametro specificato.

CDynamicParameterAccessor::GetParamStatus

Recupera lo stato del parametro specificato archiviato nel buffer.

Sintassi

bool GetParamStatus(DBORDINAL nParam,
   DBSTATUS* pStatus);

DBSTATUS* GetParamStatus(DBORDINAL nParam) const throw();

Parametri

nParam
[in] Numero di parametro (offset da 1). Il parametro 0 è riservato ai valori restituiti. Il numero di parametro è l'indice del parametro in base al relativo ordine nella chiamata SQL o nella chiamata della stored procedure. Per un esempio, vedere SetParam .

pStatus
[out] Puntatore alla variabile contenente lo stato DBSTATUS del parametro specificato. Per informazioni sui valori DBSTATUS, vedere Status in OLE DB Programmer's Reference o cercare DBSTATUS in oledb.h.

Osservazioni:

Il primo override restituisce true l'esito positivo o false negativo. Il secondo override punta alla memoria contenente lo stato del parametro specificato.

CDynamicParameterAccessor::GetParamString

Recupera i dati string del parametro specificato archiviato nel buffer.

Sintassi

bool GetParamString(DBORDINAL nParam,
   CSimpleStringA& strOutput) throw();

bool GetParamString(DBORDINAL nParam,
   CSimpleStringW& strOutput) throw();

bool GetParamString(DBORDINAL nParam,
   CHAR* pBuffer,
   size_t* pMaxLen) throw();

bool GetParamString(DBORDINAL nParam,
   WCHAR* pBuffer,
   size_t* pMaxLen) throw();

Parametri

nParam
[in] Numero di parametro (offset da 1). Il parametro 0 è riservato ai valori restituiti. Il numero di parametro è l'indice del parametro in base al relativo ordine nella chiamata SQL o nella chiamata della stored procedure. Per un esempio, vedere SetParam .

strOutput
[out] Dati stringa ANSI (CSimpleStringA) o Unicode (CSimpleStringW) del parametro specificato. È necessario passare un parametro di tipo CString, ad esempio:

CString MyString;
rs.GetParamString(1, MyString);

pBuffer
[out] Puntatore ai dati stringa ANSI (CHAR) o Unicode (WCHAR) del parametro specificato.

pMaxLen
[out] Puntatore alla dimensione del buffer a cui punta pBuffer (in caratteri, inclusa la terminazione NULL).

Osservazioni:

Restituisce true in caso di esito positivo o false negativo.

Se pBuffer è NULL, questo metodo imposta le dimensioni del buffer necessarie nella memoria a cui punta pMaxLen e restituisce true senza copiare i dati.

Questo metodo avrà esito negativo se il buffer pBuffer non è sufficientemente grande da contenere l'intera stringa.

Usare GetParamString per recuperare i dati dei parametri stringa dal buffer. Usare GetParam per recuperare i dati dei parametri non di stringa dal buffer.

CDynamicParameterAccessor::GetParamType

Recupera il tipo di dati di un parametro specificato.

Sintassi

bool GetParamType(DBORDINAL nParam,
   DBTYPE* pType) const throw();

Parametri

nParam
[in] Numero di parametro (offset da 1). Il parametro 0 è riservato ai valori restituiti. Il numero di parametro è l'indice del parametro in base al relativo ordine nella chiamata SQL o nella chiamata della stored procedure. Per un esempio, vedere SetParam .

pType
[out] Puntatore alla variabile contenente il tipo di dati del parametro specificato.

Valore restituito

Restituisce true in caso di esito positivo o false negativo.

CDynamicParameterAccessor::SetParam

Imposta il buffer dei parametri usando i dati specificati (non stringa).

Sintassi

template <class ctype>
bool SetParam(DBORDINAL nParam,
   constctype* pData,
   DBSTATUS status = DBSTATUS_S_OK) throw();

template <class ctype>
bool SetParam(TCHAR* pParamName,
   const ctype* pData,
   DBSTATUS status = DBSTATUS_S_OK) throw();

Parametri

ctype
Parametro basato su modelli che rappresenta il tipo di dati.

nParam
[in] Numero di parametro (offset da 1). Il parametro 0 è riservato ai valori restituiti. Il numero di parametro è l'indice del parametro in base al relativo ordine nella chiamata SQL o nella chiamata della stored procedure. Ad esempio:

WCHAR* wszSQL = L"SELECT * FROM Authors WHERE State='?' AND LName='?'";

CCommand<CDynamicParameterAccessor> rs;
//...
rs.SetParam<LONG>(1, &m_BillingID);
rs.SetParam<CString>(2, &m_strFirstName);

pParamName
[in] Nome del parametro.

pData
[in] Puntatore alla memoria contenente i dati da scrivere nel buffer.

status
[in] Stato della colonna DBSTATUS. Per informazioni sui valori DBSTATUS, vedere Status in OLE DB Programmer's Reference o cercare DBSTATUS in oledb.h.

Valore restituito

Restituisce true in caso di esito positivo o false negativo.

Utilizzare SetParam per impostare i dati dei parametri non di stringa nel buffer. Usare SetParamString per impostare i dati dei parametri stringa nel buffer.

CDynamicParameterAccessor::SetParamLength

Imposta la lunghezza del parametro specificato archiviato nel buffer.

Sintassi

bool SetParamLength(DBORDINAL nParam,
   DBLENGTH length);

Parametri

nParam
[in] Numero di parametro (offset da 1). Il parametro 0 è riservato ai valori restituiti. Il numero di parametro è l'indice del parametro in base al relativo ordine nella chiamata SQL o nella chiamata della stored procedure. Per un esempio, vedere SetParam .

length
[in] Lunghezza in byte del parametro specificato.

Osservazioni:

Restituisce true in caso di esito positivo o false negativo.

CDynamicParameterAccessor::SetParamStatus

Imposta lo stato del parametro specificato archiviato nel buffer.

Sintassi

bool SetParamStatus(DBORDINAL nParam,
   DBSTATUS status);

Parametri

nParam
[in] Numero di parametro (offset da 1). Il parametro 0 è riservato ai valori restituiti. Il numero di parametro è l'indice del parametro in base al relativo ordine nella chiamata SQL o nella chiamata della stored procedure. Per un esempio, vedere SetParam .

status
[in] Stato DBSTATUS del parametro specificato. Per informazioni sui valori DBSTATUS, vedere Status in OLE DB Programmer's Reference o cercare DBSTATUS in oledb.h.

Osservazioni:

Restituisce true in caso di esito positivo o false negativo.

CDynamicParameterAccessor::SetParamString

Imposta i dati string del parametro specificato archiviato nel buffer.

Sintassi

bool SetParamString(DBORDINAL nParam,
   constCHAR* pString,
   DBSTATUS status = DBSTATUS_S_OK) throw();bool SetParamString(DBORDINAL nParam,
   constWCHAR* pString,
   DBSTATUS status = DBSTATUS_S_OK) throw();

Parametri

nParam
[in] Numero di parametro (offset da 1). Il parametro 0 è riservato ai valori restituiti. Il numero di parametro è l'indice del parametro in base al relativo ordine nella chiamata SQL o nella chiamata della stored procedure. Per un esempio, vedere SetParam .

pString
[in] Puntatore ai dati stringa ANSI (CHAR) o Unicode (WCHAR) del parametro specificato. Vedere DBSTATUS in oledb.h.

status
[in] Stato DBSTATUS del parametro specificato. Per informazioni sui valori DBSTATUS, vedere Status in OLE DB Programmer's Reference o cercare DBSTATUS in oledb.h.

Osservazioni:

Restituisce true in caso di esito positivo o false negativo.

SetParamString avrà esito negativo se si tenta di impostare una stringa maggiore della dimensione massima specificata per pString.

Usare SetParamString per impostare i dati dei parametri stringa nel buffer. Usare SetParam per impostare i dati dei parametri nonstring nel buffer.

Vedi anche

Modelli di consumer OLE DB
Riferimenti ai modelli consumer OLE DB
Classe CAccessor
Classe CDynamicAccessor
Classe CManualAccessor