Clase CDaoFieldExchange

Admite las rutinas de intercambio de campos del registro (DFX) de DAO utilizadas por las clases de base de datos DAO.

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 de conjunto de registros de tipos definidos por enumFieldType 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 valor PSEUDONULL descrito en las operaciones MarkForAddNew 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. No se requiere PSEUDONULL para los campos COleDateTime 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.

Consulte también

Gráfico de jerarquías
CDaoRecordset (clase)