CFieldExchange, classe
Prend en charge les routines d'échange de champs d'enregistrements (RFX) et d'échange de champs d'enregistrements en bloc (RFX en bloc) utilisées par les classes de base de données.
Syntaxe
class CFieldExchange
Membres
Méthodes publiques
Nom | Description |
---|---|
CFieldExchange ::IsFieldType | Retourne une valeur différente de zéro si l’opération actuelle est appropriée pour le type de champ mis à jour. |
CFieldExchange ::SetFieldType | Spécifie le type de membre de données recordset ( colonne ou paramètre) représenté par tous les appels suivants aux fonctions RFX jusqu’à l’appel suivant à SetFieldType . |
Notes
CFieldExchange
n’a pas de classe de base.
Utilisez cette classe si vous écrivez des routines d’échange de données pour des types de données personnalisés ou lorsque vous implémentez l’extraction de lignes en bloc ; sinon, vous n’utiliserez pas directement cette classe. RFX et RFX en bloc échangent des données entre les membres de données de champ de votre objet recordset et les champs correspondants de l’enregistrement actif sur la source de données.
Remarque
Si vous utilisez les classes DAO (Data Access Objects) plutôt que les classes ODBC (Open Database Connectivity), utilisez plutôt la classe CDaoFieldExchange . Pour plus d’informations, consultez l’article Overview :Database Programming.
Un CFieldExchange
objet fournit les informations de contexte nécessaires à l’échange de champs d’enregistrement ou à l’échange de champs d’enregistrement en bloc à effectuer. CFieldExchange
les objets prennent en charge un certain nombre d’opérations, notamment les paramètres de liaison et les membres de données de champ et la définition de différents indicateurs sur les champs de l’enregistrement actif. Les opérations RFX et RFX en bloc sont effectuées sur les membres de données de classe recordset de types définis par FieldType enum
dans .CFieldExchange
Les valeurs FieldType possibles sont les suivantes :
CFieldExchange::outputColumn
pour les membres de données de champ.CFieldExchange::inputParam
ouCFieldExchange::param
pour les membres de données de paramètre d’entrée.CFieldExchange::outputParam
pour les membres de données des paramètres de sortie.CFieldExchange::inoutParam
pour les membres de données des paramètres d’entrée/sortie.
La plupart des fonctions membres de la classe et des membres de données sont fournis pour écrire vos propres routines RFX personnalisées. Vous utiliserez SetFieldType
fréquemment. Pour plus d’informations, consultez les articles RfX (Record Field Exchange) et Recordset (ODBC). Pour plus d’informations sur l’extraction de lignes en bloc, consultez l’article Recordset : Extraction d’enregistrements en bloc (ODBC). Pour plus d’informations sur les fonctions globales RFX et RFX en bloc, consultez Les fonctions d’échange de champs d’enregistrement dans la section Macros et Globals MFC de cette référence.
Hiérarchie d'héritage
CFieldExchange
Spécifications
En-tête : afxdb.h
CFieldExchange ::IsFieldType
Si vous écrivez votre propre fonction RFX, appelez IsFieldType
au début de votre fonction pour déterminer si l’opération actuelle peut être effectuée sur un champ ou un type de membre de données de paramètre particulier (a CFieldExchange::outputColumn
, , CFieldExchange::inputParam
, CFieldExchange::param
CFieldExchange::outputParam
ou CFieldExchange::inoutParam
).
BOOL IsFieldType(UINT* pnField);
Paramètres
pnField
Le nombre séquentiel du membre de données de champ ou de paramètre est retourné dans ce paramètre. Ce nombre correspond à l’ordre du membre de données dans la fonction CRecordset ::D oFieldExchange ou CRecordset ::D oBulkFieldExchange .
Valeur de retour
Différent de zéro si l’opération actuelle peut être effectuée sur le champ ou le type de paramètre actuel.
Notes
Suivez le modèle des fonctions RFX existantes.
CFieldExchange ::SetFieldType
Vous avez besoin d’un appel dans SetFieldType
le remplacement DoFieldExchange ou DoBulkFieldExchange de votre classe d’enregistrements.
void SetFieldType(UINT nFieldType);
Paramètres
nFieldType
Valeur du enum FieldType
, déclaré dans CFieldExchange
, qui peut être l’un des éléments suivants :
CFieldExchange::outputColumn
CFieldExchange::inputParam
CFieldExchange::param
CFieldExchange::outputParam
CFieldExchange::inoutParam
Notes
Pour les membres de données de champ, vous devez appeler SetFieldType
avec un paramètre de CFieldExchange::outputColumn
, suivi d’appels aux fonctions RFX ou RFX en bloc. Si vous n’avez pas implémenté la récupération de lignes en bloc, ClassWizard place cet SetFieldType
appel pour vous dans la section carte de champs de DoFieldExchange
.
Si vous paramétrez votre classe recordset, vous devez appeler SetFieldType
à nouveau, en dehors de n’importe quelle section de mappage de champs, suivie des appels RFX pour tous les membres de données de paramètre. Chaque type de membre de données de paramètre doit avoir son propre SetFieldType
appel. Le tableau suivant distingue les différentes valeurs que vous pouvez passer pour SetFieldType
représenter les membres de données de paramètre de votre classe :
Valeur du paramètre SetFieldType | Type de membre de données de paramètre |
---|---|
CFieldExchange::inputParam |
Paramètre d’entrée. Valeur transmise à la requête ou à la procédure stockée du jeu d’enregistrements. |
CFieldExchange::param |
identique à CFieldExchange::inputParam . |
CFieldExchange::outputParam |
Paramètre de sortie. Valeur de retour de la procédure stockée du jeu d’enregistrements. |
CFieldExchange::inoutParam |
Paramètre d’entrée/sortie. Valeur transmise et retournée à partir de la procédure stockée du jeu d’enregistrements. |
En général, chaque groupe d’appels de fonction RFX associés aux membres de données de champ ou aux membres de données de paramètre doit être précédé d’un appel à SetFieldType
. Le paramètre nFieldType de chaque SetFieldType
appel identifie le type des membres de données représentés par les appels de fonction RFX qui suivent l’appel SetFieldType
.
Pour plus d’informations sur la gestion des paramètres de sortie et d’entrée/sortie, consultez la CRecordset
fonction membre FlushResultSet. Pour plus d’informations sur les fonctions RFX et RFX en bloc, consultez la rubrique Fonctions Exchange de champ d’enregistrement. Pour plus d’informations sur l’extraction de lignes en bloc, consultez l’article Recordset : Extraction d’enregistrements en bloc (ODBC).
Exemple
Cet exemple montre plusieurs appels aux fonctions RFX avec des appels associés à SetFieldType
. Notez qu’il SetFieldType
est appelé par le biais du pFX
pointeur vers un CFieldExchange
objet.
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);
}