Classe CDynamicParameterAccessor
Semelhante ao CDynamicAccessor, mas obtém informações de parâmetro a serem definidas chamando a interface ICommandWithParameters.
Sintaxe
class CDynamicParameterAccessor : public CDynamicAccessor
Requisitos
Cabeçalho: atldbcli.h
Membros
Métodos
Nome | Descrição |
---|---|
CDynamicParameterAccessor | O construtor . |
GetParam | Recupera os dados de parâmetro do buffer. |
GetParamCount | Recupera o número de parâmetros no acessador. |
GetParamIO | Determina se o parâmetro especificado é um parâmetro de entrada ou saída. |
GetParamLength | Recupera o comprimento do parâmetro especificado armazenado no buffer. |
GetParamName | Recupera o nome de um parâmetro especificado. |
GetParamStatus | Recupera o status do parâmetro especificado armazenado no buffer. |
GetParamString | Recupera os dados de cadeia de caracteres do parâmetro especificado armazenado no buffer. |
GetParamType | Recupera o tipo de dados de um parâmetro especificado. |
SetParam | Define o buffer usando os dados de parâmetro. |
SetParamLength | Define o comprimento do parâmetro especificado armazenado no buffer. |
SetParamStatus | Define o status do parâmetro especificado armazenado no buffer. |
SetParamString | Define os dados de cadeia de caracteres do parâmetro especificado armazenado no buffer. |
Comentários
O provedor precisa dar suporte a ICommandWithParameters
para que o consumidor use essa classe.
As informações do parâmetro são armazenadas em um buffer criado e gerenciado por essa classe. Obtenha dados de parâmetro do buffer usando GetParam e GetParamType.
Para obter um exemplo que demonstra como usar essa classe para executar um procedimento armazenado do SQL Server e obter os valores de parâmetro de saída, confira o código de exemplo DynamicConsumer no repositório Microsoft VCSamples no GitHub.
CDynamicParameterAccessor::CDynamicParameterAccessor
O construtor .
Sintaxe
typedef CDynamicParameterAccessor _ParamClass;
CDynamicParameterAccessor(
DBBLOBHANDLINGENUM eBlobHandling = DBBLOBHANDLING_DEFAULT,
DBLENGTH nBlobSize = 8000 )
: CDynamicAccessor(eBlobHandling, nBlobSize )
Parâmetros
eBlobHandling
Especifica como os dados do BLOB devem ser processados. O valor padrão é DBBLOBHANDLING_DEFAULT. Confira CDynamicAccessor::SetBlobHandling para obter uma descrição dos valores de DBBLOBHANDLINGENUM.
nBlobSize
O tamanho máximo do BLOB em bytes; os dados da coluna sobre esse valor são tratados como um BLOB. O valor padrão é 8.000. Confira CDynamicAccessor::SetBlobSizeLimit para obter detalhes.
Comentários
Confira o construtor CDynamicAccessor::CDynamicAccessor para obter mais informações sobre a manipulação de BLOBs.
CDynamicParameterAccessor::GetParam
Recupera os dados não cadeia de caracteres de um parâmetro especificado do buffer de parâmetro.
Sintaxe
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();
Parâmetros
ctype
Um parâmetro com modelo que é o tipo de dados.
nParam
[in] O número do parâmetro (deslocamento de 1). O parâmetro 0 é reservado para valores retornados. O número do parâmetro é o índice do parâmetro com base na ordem dele na chamada de procedimento armazenado ou SQL. Confira SetParam para obter um exemplo.
pParamName
[in] O nome do parâmetro.
pData
[out] O ponteiro para a memória que contém os dados recuperados do buffer.
Valor de retorno
Para versões sem modelo, aponta para a memória que contém os dados recuperados do buffer. Para versões com modelo, retorna true
em caso de êxito ou false
em caso de falha.
Use GetParam
para recuperar dados de parâmetro não cadeia de caracteres do buffer. Use GetParamString para recuperar dados de parâmetro de cadeia de caracteres do buffer.
CDynamicParameterAccessor::GetParamCount
Recupera o número de parâmetros armazenados no buffer.
Sintaxe
DB_UPARAMS GetParamCount() const throw();
Valor retornado
O número de parâmetros.
CDynamicParameterAccessor::GetParamIO
Determina se o parâmetro especificado é um parâmetro de entrada ou saída.
Sintaxe
bool GetParamIO(DBORDINAL nParam,
DBPARAMIO* pParamIO) const throw();
Parâmetros
nParam
[in] O número do parâmetro (deslocamento de 1). O parâmetro 0 é reservado para valores retornados. O número do parâmetro é o índice do parâmetro com base na ordem dele na chamada de procedimento armazenado ou SQL. Confira SetParam para obter um exemplo.
pParamIO
Um ponteiro para a variável que contém o tipo DBPARAMIO
(entrada ou saída) do parâmetro especificado. Ela é definida da seguinte maneira:
typedef DWORD DBPARAMIO;
enum DBPARAMIOENUM {
DBPARAMIO_NOTPARAM = 0,
DBPARAMIO_INPUT = 0x1,
DBPARAMIO_OUTPUT = 0x2
};
Valor de retorno
Retornará true
se houver êxito ou false
se houver falha.
CDynamicParameterAccessor::GetParamLength
Recupera o comprimento do parâmetro especificado armazenado no buffer.
Sintaxe
bool GetParamLength(DBORDINAL nParam,
DBLENGTH* pLength);
DBLENGTH* GetParamLength(DBORDINAL nParam) const throw();
Parâmetros
nParam
[in] O número do parâmetro (deslocamento de 1). O parâmetro 0 é reservado para valores retornados. O número do parâmetro é o índice do parâmetro com base na ordem dele na chamada de procedimento armazenado ou SQL. Confira SetParam para obter um exemplo.
pLength
[out] Um ponteiro para a variável que contém o comprimento em bytes do parâmetro especificado.
Comentários
A primeira substituição retornará true
se houver êxito ou false
se houver falha. A segunda substituição aponta para a memória que contém o comprimento do parâmetro.
CDynamicParameterAccessor::GetParamName
Recupera o nome do parâmetro especificado.
Sintaxe
LPOLESTR GetParamName(DBORDINAL nParam) const throw();
Parâmetros
nParam
[in] O número do parâmetro (deslocamento de 1). O parâmetro 0 é reservado para valores retornados. O número do parâmetro é o índice do parâmetro com base na ordem dele na chamada de procedimento armazenado ou SQL. Confira SetParam para obter um exemplo.
Valor de retorno
O nome do parâmetro especificado.
CDynamicParameterAccessor::GetParamStatus
Recupera o status do parâmetro especificado armazenado no buffer.
Sintaxe
bool GetParamStatus(DBORDINAL nParam,
DBSTATUS* pStatus);
DBSTATUS* GetParamStatus(DBORDINAL nParam) const throw();
Parâmetros
nParam
[in] O número do parâmetro (deslocamento de 1). O parâmetro 0 é reservado para valores retornados. O número do parâmetro é o índice do parâmetro com base na ordem dele na chamada de procedimento armazenado ou SQL. Confira SetParam para obter um exemplo.
pStatus
[out] Um ponteiro para a variável que contém o status DBSTATUS do parâmetro especificado. Para obter informações sobre valores de DBSTATUS, confira Status na Referência de programador do OLE DB ou pesquise por DBSTATUS em oledb.h.
Comentários
A primeira substituição retornará true
se houver êxito ou false
se houver falha. A segunda substituição aponta para a memória que contém o status do parâmetro especificado.
CDynamicParameterAccessor::GetParamString
Recupera os dados de cadeia de caracteres do parâmetro especificado armazenado no buffer.
Sintaxe
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();
Parâmetros
nParam
[in] O número do parâmetro (deslocamento de 1). O parâmetro 0 é reservado para valores retornados. O número do parâmetro é o índice do parâmetro com base na ordem dele na chamada de procedimento armazenado ou SQL. Confira SetParam para obter um exemplo.
strOutput
[out] Os dados de cadeia de caracteres ANSI (CSimpleStringA
) ou Unicode (CSimpleStringW
) do parâmetro especificado. Você deve passar um parâmetro de tipo CString
, por exemplo:
CString MyString;
rs.GetParamString(1, MyString);
pBuffer
[out] Um ponteiro para os dados de cadeia de caracteres ANSI (CHAR) ou Unicode (WCHAR) do parâmetro especificado.
pMaxLen
[out] Um ponteiro para o tamanho do buffer apontado por pBuffer (em caracteres, incluindo o NULL de terminação).
Comentários
Retornará true
se houver êxito ou false
se houver falha.
Se pBuffer for NULL, esse método definirá o tamanho do buffer necessário na memória apontada por pMaxLen e retornará true
sem copiar os dados.
Esse método falhará se o buffer pBuffer não for grande o suficiente para conter toda a cadeia de caracteres.
Use GetParamString
para recuperar dados de parâmetro de cadeia de caracteres do buffer. Use GetParam para recuperar dados de parâmetro não cadeia de caracteres do buffer.
CDynamicParameterAccessor::GetParamType
Recupera o tipo de dados de um parâmetro especificado.
Sintaxe
bool GetParamType(DBORDINAL nParam,
DBTYPE* pType) const throw();
Parâmetros
nParam
[in] O número do parâmetro (deslocamento de 1). O parâmetro 0 é reservado para valores retornados. O número do parâmetro é o índice do parâmetro com base na ordem dele na chamada de procedimento armazenado ou SQL. Confira SetParam para obter um exemplo.
pType
[out] Um ponteiro para a variável que contém o tipo de dados do parâmetro especificado.
Valor de retorno
Retornará true
se houver êxito ou false
se houver falha.
CDynamicParameterAccessor::SetParam
Define o buffer de parâmetro usando os dados (não cadeia de caracteres) especificados.
Sintaxe
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();
Parâmetros
ctype
Um parâmetro com modelo que é o tipo de dados.
nParam
[in] O número do parâmetro (deslocamento de 1). O parâmetro 0 é reservado para valores retornados. O número do parâmetro é o índice do parâmetro com base na ordem dele na chamada de procedimento armazenado ou SQL. Por exemplo:
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] O nome do parâmetro.
pData
[in] O ponteiro para a memória que contém os dados a serem gravados no buffer.
status
[in] O status da coluna DBSTATUS. Para obter informações sobre valores de DBSTATUS, confira Status na Referência de programador do OLE DB ou pesquise por DBSTATUS em oledb.h.
Valor de retorno
Retornará true
se houver êxito ou false
se houver falha.
Use SetParam
para definir dados de parâmetro não cadeia de caracteres no buffer. Use SetParamString para definir dados de parâmetro de cadeia de caracteres no buffer.
CDynamicParameterAccessor::SetParamLength
Define o comprimento do parâmetro especificado armazenado no buffer.
Sintaxe
bool SetParamLength(DBORDINAL nParam,
DBLENGTH length);
Parâmetros
nParam
[in] O número do parâmetro (deslocamento de 1). O parâmetro 0 é reservado para valores retornados. O número do parâmetro é o índice do parâmetro com base na ordem dele na chamada de procedimento armazenado ou SQL. Confira SetParam para obter um exemplo.
length
[in] O comprimento em bytes do parâmetro especificado.
Comentários
Retornará true
se houver êxito ou false
se houver falha.
CDynamicParameterAccessor::SetParamStatus
Define o status do parâmetro especificado armazenado no buffer.
Sintaxe
bool SetParamStatus(DBORDINAL nParam,
DBSTATUS status);
Parâmetros
nParam
[in] O número do parâmetro (deslocamento de 1). O parâmetro 0 é reservado para valores retornados. O número do parâmetro é o índice do parâmetro com base na ordem dele na chamada de procedimento armazenado ou SQL. Confira SetParam para obter um exemplo.
status
[in] O status DBSTATUS do parâmetro especificado. Para obter informações sobre valores de DBSTATUS, confira Status na Referência de programador do OLE DB ou pesquise por DBSTATUS em oledb.h.
Comentários
Retornará true
se houver êxito ou false
se houver falha.
CDynamicParameterAccessor::SetParamString
Define os dados de cadeia de caracteres do parâmetro especificado armazenado no buffer.
Sintaxe
bool SetParamString(DBORDINAL nParam,
constCHAR* pString,
DBSTATUS status = DBSTATUS_S_OK) throw();bool SetParamString(DBORDINAL nParam,
constWCHAR* pString,
DBSTATUS status = DBSTATUS_S_OK) throw();
Parâmetros
nParam
[in] O número do parâmetro (deslocamento de 1). O parâmetro 0 é reservado para valores retornados. O número do parâmetro é o índice do parâmetro com base na ordem dele na chamada de procedimento armazenado ou SQL. Confira SetParam para obter um exemplo.
pString
[entrada] Um ponteiro para os dados de cadeia de caracteres ANSI (CHAR) ou Unicode (WCHAR) do parâmetro especificado. Confira DBSTATUS em oledb.h.
status
[in] O status DBSTATUS do parâmetro especificado. Para obter informações sobre valores de DBSTATUS, confira Status na Referência de programador do OLE DB ou pesquise por DBSTATUS em oledb.h.
Comentários
Retornará true
se houver êxito ou false
se houver falha.
SetParamString
falhará se você tentar definir uma cadeia de caracteres maior que o tamanho máximo especificado para pString.
Use SetParamString
para definir dados de parâmetro de cadeia de caracteres no buffer. Use SetParam para definir dados de parâmetro não cadeia de caracteres no buffer.
Confira também
Modelos de consumidor OLE DB
Referência de modelos de consumidor do OLE DB
Classe CAccessor
Classe CDynamicAccessor
Classe CManualAccessor