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