CFieldExchange (clase)
Admite las rutinas de intercambio de campos de registro (RFX) y de intercambio masivo de campos de registro (RFX Masivo) utilizadas por las clases de base de datos.
Sintaxis
class CFieldExchange
Miembros
Métodos públicos
Nombre | Descripción |
---|---|
CFieldExchange::IsFieldType | Devuelve un valor distinto de cero si la operación actual es adecuada para el tipo de campo que se está actualizando. |
CFieldExchange::SetFieldType | Especifica el tipo de miembro de datos del conjunto de registros (columna o parámetro) representado por todas las siguientes llamadas a funciones RFX hasta la siguiente llamada a SetFieldType . |
Comentarios
CFieldExchange
no tiene una clase base.
Use esta clase si está escribiendo rutinas de intercambio de datos para tipos de datos personalizados o al implementar una captura masiva de filas; de lo contrario, no use directamente esta clase. RFX y RFX masivo intercambian datos entre los miembros de datos de campo del objeto de conjunto de registros y los campos correspondientes del registro actual en el origen de datos.
Nota:
Si está trabajando con las clases de Objetos de acceso a datos (DAO) en lugar de las clases de Conectividad abierta de bases de datos (ODBC), use la clase CDaoFieldExchange en su lugar. Para más información, consulte el artículo Información general: programación de bases de datos.
Un objeto CFieldExchange
proporciona la información de contexto necesaria para que se produzca el intercambio de campos de registros o el intercambio masivo de campos de registros. Los objetos CFieldExchange
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 RFX y BULK RFX se realizan en miembros de datos de clase recordset de tipos definidos por FieldType enum
en CFieldExchange
. Los valores posibles de FieldType son:
CFieldExchange::outputColumn
para miembros de datos de campo.CFieldExchange::inputParam
oCFieldExchange::param
para miembros de datos de parámetros de entrada.CFieldExchange::outputParam
para miembros de datos de parámetros de salida.CFieldExchange::inoutParam
para miembros de datos de parámetros de entrada y salida.
La mayoría de las funciones miembro y los miembros de datos de la clase se proporcionan para escribir sus propias rutinas RFX personalizadas. Usará SetFieldType
con frecuencia. Para más información, vea los artículos Intercambio de campos de registros (RFX) y Conjunto de registros (ODBC). Para más información sobre la captura masiva de filas, vea el artículo Conjunto de registros: captura de registros de forma masiva (ODBC). Para más información sobre las funciones globales RFX y RFX masivo, vea Funciones de intercambio de campos de registro en la sección Macros y variables globales de MFC de esta referencia.
Jerarquía de herencia
CFieldExchange
Requisitos
Encabezado: afxdb.h
CFieldExchange::IsFieldType
Si escribe su propia función RFX, llame a IsFieldType
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 o parámetros en particular (CFieldExchange::outputColumn
, CFieldExchange::inputParam
, CFieldExchange::param
, CFieldExchange::outputParam
o CFieldExchange::inoutParam
).
BOOL IsFieldType(UINT* pnField);
Parámetros
pnField
El número secuencial del miembro de datos de campos o parámetros se devuelve en este parámetro. Este número corresponde al orden del miembro de datos en la función CRecordset::DoFieldExchange o CRecordset::DoBulkFieldExchange.
Valor devuelto
Distinto de cero si la operación actual se puede realizar en el tipo de campo o parámetro actual.
Comentarios
Siga el modelo de las funciones RFX existentes.
CFieldExchange::SetFieldType
Necesita una llamada a SetFieldType
en la invalidación DoFieldExchange o DoBulkFieldExchange de la clase de conjunto de registros.
void SetFieldType(UINT nFieldType);
Parámetros
nFieldType
Valor de enum FieldType
, declarado en CFieldExchange
, que puede ser uno de los siguientes:
CFieldExchange::outputColumn
CFieldExchange::inputParam
CFieldExchange::param
CFieldExchange::outputParam
CFieldExchange::inoutParam
Comentarios
Para los miembros de datos de campo, debe llamar a SetFieldType
con un parámetro de CFieldExchange::outputColumn
, seguido de llamadas a las funciones RFX o RFX masivo. Si no ha implementado la captura masiva de filas, ClassWizard coloca esta llamada a SetFieldType
automáticamente en la sección de asignación de campos de DoFieldExchange
.
Si parametriza la clase de conjunto de registros, debe llamar a SetFieldType
nuevo, fuera de cualquier sección de asignación de campos, seguida de llamadas RFX para todos los miembros de datos de parámetros. Cada tipo de miembro de datos de parámetros debe tener su propia llamada a SetFieldType
. En la tabla siguiente se distinguen los distintos valores que puede pasar a SetFieldType
para representar los miembros de datos de parámetros de la clase:
Valor del parámetro SetFieldType | Tipo de miembro de datos de parámetros |
---|---|
CFieldExchange::inputParam |
Parámetro de entrada. Valor que se pasa a la consulta o al procedimiento almacenado del conjunto de registros. |
CFieldExchange::param |
igual que CFieldExchange::inputParam . |
CFieldExchange::outputParam |
Parámetro de salida. Valor devuelto del procedimiento almacenado del conjunto de registros. |
CFieldExchange::inoutParam |
Parámetro de entrada o salida. Valor que se pasa al procedimiento almacenado del conjunto de registros y se devuelve de él. |
En general, cada grupo de llamadas de función RFX 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 RFX que siguen a la llamada aSetFieldType
.
Para más información sobre cómo controlar los parámetros de salida y entrada/salida, consulte la función miembro FlushResultSet de CRecordset
. Para más información sobre las funciones RFX y RFX masivo, vea el tema Funciones de intercambio de campos de registro. Para información relacionada con la captura masiva de filas, vea el artículo Conjunto de registros: captura masiva de registros (ODBC).
Ejemplo
En este ejemplo se muestran varias llamadas a funciones RFX con llamadas complementarias a SetFieldType
. Tenga en cuenta que SetFieldType
se llama a través del puntero pFX
a un objeto CFieldExchange
.
void CSections::DoFieldExchange(CFieldExchange *pFX)
{
pFX->SetFieldType(CFieldExchange::outputColumn);
RFX_Text(pFX, _T("[CourseID]"), m_CourseID);
RFX_Text(pFX, _T("[InstructorID]"), m_InstructorID);
RFX_Text(pFX, _T("[RoomNo]"), m_RoomNo);
RFX_Text(pFX, _T("[Schedule]"), m_Schedule);
// output parameter
pFX->SetFieldType(CFieldExchange::outputParam);
RFX_Long(pFX, _T("Instructor_Count"), m_nCountParam);
// input parameter
pFX->SetFieldType(CFieldExchange::inputParam);
RFX_Text(pFX, _T("Department_Name"), m_strNameParam);
}