Compartilhar via


Classe CDynamicStringAccessor

Permite que você acesse uma fonte de dados quando não tiver conhecimento do esquema de banco de dados (a estrutura subjacente do banco de dados).

Sintaxe

template< typename BaseType, DBTYPEENUM OleDbType >
class CDynamicStringAccessorT : public CDynamicAccessor

Requisitos

Cabeçalho: atldbcli.h

Membros

Métodos

Nome Descrição
GetString Recupera os dados de coluna especificados como uma cadeia de caracteres.
SetString Define os dados de coluna especificados como uma cadeia de caracteres.

Comentários

Embora o CDynamicAccessor solicite dados no formato nativo relatado pelo provedor, CDynamicStringAccessor solicita que o provedor busque todos os dados acessados do armazenamento de dados como dados de cadeia de caracteres. Isso é especialmente útil para tarefas simples que não exigem cálculo de valores no armazenamento de dados, como exibir ou imprimir o conteúdo do repositório de dados.

O tipo nativo de dados de coluna no armazenamento de dados não importa. Desde que o provedor permita a conversão de dados, ele fornecerá os dados no formato de cadeia de caracteres. Se o provedor permitir a conversão do tipo de dados nativo em uma cadeia de caracteres (o que não é comum), a chamada solicitante retornará o valor de sucesso DB_S_ERRORSOCCURED e o status da coluna correspondente indicará um problema de conversão com DBSTATUS_E_CANTCONVERTVALUE.

Use métodos CDynamicStringAccessor para obter informações de coluna. Use essas informações de coluna para criar um acessador dinamicamente em tempo de execução.

As informações da coluna são armazenadas em um buffer criado e gerenciado por essa classe. Obtenha dados do buffer usando GetString ou armazene-os no buffer usando SetString.

Para obter uma discussão e exemplos de como usar as classes de acessador dinâmico, confira Uso de acessadores dinâmicos.

CDynamicStringAccessor::GetString

Recupera os dados de coluna especificados como uma cadeia de caracteres.

Sintaxe

BaseType* GetString(DBORDINAL nColumn) const throw();

BaseType* GetString(const CHAR* pColumnName) const throw();

BaseType* GetString(const WCHAR* pColumnName) const throw();

Parâmetros

nColumn
[in] O número da coluna. Os números das colunas começam com 1. Um valor de 0 refere-se à coluna do indicador, se houver.

pColumnName
[in] Um ponteiro para uma cadeia de caracteres que contém o nome da coluna.

Valor de Devolução

Um ponteiro para o valor da cadeia de caracteres recuperado da coluna especificada. O valor é do tipo BaseType, que será CHAR ou WCHAR dependendo se _UNICODE está definido ou não. Retorna NULL se a coluna especificada não for encontrada.

Comentários

O segundo formulário de substituição usa o nome da coluna como uma cadeia de caracteres ANSI. O terceiro formulário de substituição usa o nome da coluna como uma cadeia de caracteres Unicode.

CDynamicStringAccessor::SetString

Define os dados de coluna especificados como uma cadeia de caracteres.

Sintaxe

HRESULT SetString(DBORDINAL nColumn,
   BaseType* data) throw();

HRESULT SetString(const CHAR* pColumnName,
   BaseType* data) throw();

HRESULT SetString(const WCHAR* pColumnName,
   BaseType* data) throw();

Parâmetros

nColumn
[in] O número da coluna. Os números das colunas começam com 1. Um valor especial de 0 refere-se à coluna do indicador, se houver.

pColumnName
[in] Um ponteiro para uma cadeia de caracteres que contém o nome da coluna.

data
[in] Um ponteiro para os dados de cadeia de caracteres a serem gravados na coluna especificada.

Valor de Devolução

[in] Um ponteiro para o valor da cadeia de caracteres para o qual definir a coluna especificada. O valor é do tipo BaseType, que será CHAR ou WCHAR dependendo se _UNICODE está definido ou não.

Comentários

O segundo formulário de substituição usa o nome da coluna como uma cadeia de caracteres ANSI e o terceiro formulário de substituição usa o nome da coluna como uma cadeia de caracteres Unicode.

Se _SECURE_ATL for definido para ter um valor diferente de zero, uma falha de declaração de runtime será gerada se a cadeia de dados de entrada for maior do que o comprimento máximo permitido da coluna de dados referenciada. Caso contrário, a cadeia de caracteres de entrada será truncada se for maior que o comprimento máximo permitido.

Confira também

Modelos de consumidor OLE DB
Referência de modelos de consumidor do OLE DB
Classe CAccessor
Classe CDynamicParameterAccessor
Classe CManualAccessor
Classe CDynamicAccessor
Classe CDynamicStringAccessorA
Classe CDynamicStringAccessorW
Classe CXMLAccessor