Clase CDaoFieldExchange
Admite las rutinas de intercambio de campos del registro (DFX) de DAO utilizadas por las clases de base de datos DAO.
Nota:
DAO se admite mediante Office 2013. DAO 3.6 es la versión final y se considera obsoleta.
Sintaxis
class CDaoFieldExchange
Miembros
Métodos públicos
Nombre | Descripción |
---|---|
CDaoFieldExchange::IsValidOperation | Devuelve un valor distinto de cero si la operación actual es adecuada para el tipo de campo que se está actualizando. |
CDaoFieldExchange::SetFieldType | Especifica el tipo de miembro de datos del conjunto de registros (columna o parámetro) representado por todas las llamadas posteriores a funciones DFX hasta la siguiente llamada a SetFieldType . |
Miembros de datos públicos
Nombre | Descripción |
---|---|
CDaoFieldExchange::m_nOperation | La operación DFX que realiza la llamada actual a la función miembro del conjunto de registros DoFieldExchange . |
CDaoFieldExchange::m_prs | Puntero al conjunto de registros en el que se realizan las operaciones DFX. |
Comentarios
CDaoFieldExchange
no tiene una clase base.
Use esta clase si va a escribir rutinas de intercambio de datos para tipos de datos personalizados; de lo contrario, no usará directamente esta clase. DFX intercambia datos entre los miembros de datos de campo del objeto CDaoRecordset y los campos correspondientes del registro actual en el origen de datos. DFX administra el intercambio en ambas direcciones, desde el origen de datos y hacia este. Consulte la nota técnica 53 para más información sobre cómo escribir rutinas DFX personalizadas.
Nota:
Las clases de base de datos DAO son distintas de las clases de base de datos MFC, basadas en la conectividad abierta de base de datos (ODBC). Todos los nombres de las clases de base de datos DAO tienen el prefijo "CDao". Se puede seguir accediendo a orígenes de datos de ODBC usando clases DAO. En general, las clases MFC basadas en DAO son más capaces que las clases MFC basadas en ODBC. Las clases basadas en DAO pueden acceder a los datos, incluso mediante controladores ODBC, a través de su propio motor de base de datos. También admiten operaciones de lenguaje de definición de datos (DDL), como agregar tablas a través de las clases en lugar de tener que llamar directamente a DAO.
Nota:
El intercambio de campos de registros DAO (DFX) es muy similar al intercambio de campos de registro (RFX) en las clases de base de datos MFC basadas en ODBC ( CDatabase
, CRecordset
). Si conoce RFX, le resultará fácil usar DFX.
Un objeto CDaoFieldExchange
proporciona la información de contexto necesaria para que se produzca el intercambio de campos de registros DAO. Los objetos CDaoFieldExchange
admiten varias operaciones, que incluyen parámetros de enlace y los miembros de datos de campo y el establecimiento de varias marcas en los campos del registro actual. Las operaciones DFX se realizan en miembros de datos de clase recordset de tipos definidos por FieldType enum
en CDaoFieldExchange
. Los valores posibles de FieldType son:
CDaoFieldExchange::outputColumn
para miembros de datos de campo.CDaoFieldExchange::param
para miembros de datos de parámetros.
La función miembro IsValidOperation se proporciona para escribir sus propias rutinas DFX personalizadas. Usará SetFieldType con frecuencia en las funciones CDaoRecordset::DoFieldExchange. Para más información sobre las funciones globales DFX, consulte Funciones de intercambio de campos de registros. Para más información sobre cómo escribir rutinas DFX personalizadas para sus propios tipos de datos, consulte la nota técnica 53.
Jerarquía de herencia
CDaoFieldExchange
Requisitos
Encabezado: afxdao.h
CDaoFieldExchange::IsValidOperation
Si escribe su propia función RFX, llame a IsValidOperation
al principio de la función para determinar si la operación actual se puede realizar en un tipo de miembro de datos de campos en particular (CDaoFieldExchange::outputColumn
o CDaoFieldExchange::param
).
BOOL IsValidOperation();
Valor devuelto
Un valor distinto de cero si la operación actual es adecuada para el tipo de campo que se está actualizando.
Comentarios
Algunas de las operaciones realizadas por el mecanismo DFX solo se aplican a uno de los posibles tipos de campo. Siga el modelo de las funciones DFX existentes.
Para más información sobre cómo escribir rutinas DFX personalizadas, consulte la nota técnica 53.
CDaoFieldExchange::m_nOperation
Identifica la operación que se va a realizar en el objeto CDaoRecordset asociado al objeto de intercambio de campos.
Comentarios
El objeto CDaoFieldExchange
proporciona el contexto para una serie de operaciones DFX diferentes en el conjunto de registros.
Nota:
El PSEUDONULL
valor descrito en las MarkForAddNew
operaciones y SetFieldNull
siguientes es un valor que se usa para marcar los campos Null. El mecanismo de intercambio de campos de registros DAO (DFX) usa este valor para determinar qué campos se han marcado explícitamente como null. PSEUDONULL
no es necesario para COleDateTime
los campos y COleCurrency
.
Los valores posibles de m_nOperation
son los siguientes:
Operación | Descripción |
---|---|
AddToParameterList |
Compila la cláusula PARAMETERS de la instrucción SQL. |
AddToSelectList |
Compila la cláusula SELECT de la instrucción SQL. |
BindField |
Enlaza un campo de la base de datos a una ubicación de memoria de la aplicación. |
BindParam |
Establece los valores de parámetro de la consulta del conjunto de registros. |
Fixup |
Establece el estado null de un campo. |
AllocCache |
Asigna la memoria caché usada para comprobar si hay campos con modificaciones en el conjunto de registros. |
StoreField |
Guarda el registro actual en la memoria caché. |
LoadField |
Restaura las variables de los miembros de datos almacenadas en caché en el conjunto de registros. |
FreeCache |
Libera la memoria caché usada para comprobar si hay campos con modificaciones en el conjunto de registros. |
SetFieldNull |
Establece el estado de un campo en null y el valor en PSEUDONULL. |
MarkForAddNew |
Marca los campos como "con modificaciones" si no son PSEUDONULL. |
MarkForEdit |
Marca los campos como "con modificaciones" si no coinciden con la memoria caché. |
SetDirtyField |
Establece los valores de campo marcados como "con modificaciones". |
DumpField |
Vuelca el contenido de un campo (solo para depuración). |
MaxDFXOperation |
Se usa para la comprobación de entrada. |
CDaoFieldExchange::m_prs
Contiene un puntero al objeto CDaoRecordset asociado al objeto CDaoFieldExchange
.
Comentarios
CDaoFieldExchange::SetFieldType
Llame a SetFieldType
en el objeto CDaoRecordset
de la invalidación DoFieldExchange
de la clase.
void SetFieldType(UINT nFieldType);
Parámetros
nFieldType
Valor de la enumeración FieldType, que se declara en CDaoFieldExchange
, que puede ser cualquiera de los siguientes:
CDaoFieldExchange::outputColumn
CDaoFieldExchange::param
Comentarios
Normalmente, ClassWizard escribe esta llamada automáticamente. Si escribe su propia función y usa el asistente para escribir la función DoFieldExchange
, agregue llamadas a su propia función fuera de la asignación de campos. Si no usa el asistente, no habrá ninguna asignación de campos. La llamada precede a las llamadas a funciones DFX, una para cada miembro de datos de campo de la clase e identifica el tipo de campo como CDaoFieldExchange::outputColumn
.
Si parametriza la clase del conjunto de registros, debe agregar llamadas DFX para todos los miembros de datos de parámetros (fuera de la asignación de campos) y preceder estas llamadas con una llamada a SetFieldType
. Pase el valor CDaoFieldExchange::param
. (En su lugar, puede usar un CDaoQueryDef y establecer sus valores de parámetro).
En general, cada grupo de llamadas de función DFX asociadas a miembros de datos de campos o miembros de datos de parámetros debe ir precedido de una llamada a SetFieldType
. El parámetro nFieldType de cada llamada a SetFieldType
identifica el tipo de los miembros de datos representados por las llamadas de función DFX que siguen a la llamada a SetFieldType
.