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