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)