Compartir a través de


CDynamicStringAccessor (Clase)

Permite acceder a un origen de datos cuando se desconoce el esquema de la base de datos (estructura subyacente de la base de datos).

Sintaxis

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

Requisitos

Encabezado: atldbcli.h

Miembros

Métodos

Nombre Descripción
GetString Recupera los datos de columna especificados como una cadena.
SetString Establece los datos de columna especificados como una cadena.

Comentarios

Aunque CDynamicAccessor solicita datos en el formato nativo notificado por el proveedor, CDynamicStringAccessor solicita que el proveedor capture todos los datos a los que se accede desde el almacén de datos como datos de cadena. Esto es especialmente útil para tareas sencillas que no requieren el cálculo de valores en el almacén de datos, como mostrar o imprimir el contenido del almacén de datos.

El tipo nativo de datos de columna en el almacén de datos no importa; siempre que el proveedor pueda admitir la conversión de datos, proporcionará los datos en formato de cadena. Si el proveedor no admite la conversión del tipo de datos nativo a una cadena (que no es común), la llamada solicitante devolverá el valor correcto DB_S_ERRORSOCCURED y el estado de la columna correspondiente indicará un problema de conversión con DBSTATUS_E_CANTCONVERTVALUE.

Use métodos CDynamicStringAccessor para obtener información de columna. Esta información de columna se usa para crear un descriptor de acceso dinámicamente en tiempo de ejecución.

La información de columna se almacena en un búfer creado y administrado por esta clase. Obtenga datos del búfer mediante GetString o almacénelos en el búfer mediante SetString.

Para obtener una explicación y ejemplos de uso de las clases de descriptor de acceso dinámico, consulte Uso de descriptores de acceso dinámicos.

CDynamicStringAccessor::GetString

Recupera los datos de columna especificados como una cadena.

Sintaxis

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

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

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

Parámetros

nColumn
[in] Número de la columna. Los números de columna empiezan por 1. Un valor 0 hace referencia a la columna de marcador, si existe.

pColumnName
[in] Puntero a una cadena de caracteres que contiene el nombre de columna.

Valor devuelto

Puntero al valor de cadena recuperado de la columna especificada. El valor es de tipo BaseType, que será CHAR o WCHAR en función de si se define o no _UNICODE. Devuelve NULL si no se encuentra la columna especificada.

Comentarios

El segundo formulario de invalidación toma el nombre de columna como una cadena ANSI. El tercer formulario de invalidación toma el nombre de columna como una cadena Unicode.

CDynamicStringAccessor::SetString

Establece los datos de columna especificados como una cadena.

Sintaxis

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] Número de la columna. Los números de columna empiezan por 1. El valor especial de 0 hace referencia a la columna de marcador, si existe.

pColumnName
[in] Puntero a una cadena de caracteres que contiene el nombre de columna.

data
[in] Puntero a los datos de cadena que se van a escribir en la columna especificada.

Valor devuelto

Puntero al valor de cadena en el que se va a establecer la columna especificada. El valor es de tipo BaseType, que será CHAR o WCHAR en función de si se define o no _UNICODE.

Comentarios

El segundo formulario de invalidación toma el nombre de columna como una cadena ANSI y el tercer formulario de invalidación toma el nombre de columna como una cadena Unicode.

Si _SECURE_ATL se define para tener un valor distinto de cero, se generará un error de aserción en el entorno de ejecución si la cadena data de entrada es mayor que la longitud máxima permitida de la columna de datos a la que se hace referencia. De lo contrario, la cadena de entrada se truncará si es mayor que la longitud máxima permitida.

Consulte también

Plantillas de consumidor OLE DB
Referencia de plantillas de consumidor OLE DB
CAccessor (Clase)
CDynamicParameterAccessor (Clase)
CManualAccessor (Clase)
CDynamicAccessor (Clase)
CDynamicStringAccessorA (Clase)
CDynamicStringAccessorW (Clase)
CXMLAccessor (Clase)