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 ou CFieldExchange::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::paramCFieldExchange::outputParamou 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);
}

Voir aussi

Graphique hiérarchique
CRecordset, classe