Partager via


CDaoFieldExchange, classe

Prend en charge les routines d'échange de champs d'enregistrements DAO (DFX) utilisées par les classes de base de données DAO.

Remarque

DAO est pris en charge par le biais d’Office 2013. DAO 3.6 est la version finale, et elle est considérée comme obsolète.

Syntaxe

class CDaoFieldExchange

Membres

Méthodes publiques

Nom Description
CDaoFieldExchange ::IsValidOperation Retourne une valeur différente de zéro si l’opération actuelle est appropriée pour le type de champ mis à jour.
CDaoFieldExchange ::SetFieldType Spécifie le type de membre de données recordset ( colonne ou paramètre) représenté par tous les appels suivants aux fonctions DFX jusqu’à l’appel suivant à SetFieldType.

Membres de données publics

Nom Description
CDaoFieldExchange ::m_nOperation Opération DFX effectuée par l’appel actuel à la fonction membre du jeu d’enregistrements DoFieldExchange .
CDaoFieldExchange ::m_prs Pointeur vers le jeu d’enregistrements sur lequel les opérations DFX sont effectuées.

Notes

CDaoFieldExchange 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 ; sinon, vous n’utiliserez pas directement cette classe. DFX échange des données entre les membres de données de champ de votre objet CDaoRecordset et les champs correspondants de l’enregistrement actif sur la source de données. DFX gère l’échange dans les deux sens, de la source de données et de la source de données. Consultez la note technique 53 pour plus d’informations sur l’écriture de routines DFX personnalisées.

Remarque

Les classes de base de données DAO sont distinctes des classes de base de données MFC basées sur Open Database Connectivity (ODBC). Tous les noms de classes de base de données DAO ont le préfixe « CDao ». Vous pouvez toujours accéder aux sources de données ODBC avec les classes DAO. En général, les classes MFC basées sur DAO sont plus capables que les classes MFC basées sur ODBC. Les classes DAO peuvent accéder aux données, notamment via des pilotes ODBC, via leur propre moteur de base de données. Ils prennent également en charge les opérations DDL (Data Definition Language), telles que l’ajout de tables via les classes au lieu de devoir appeler DAO vous-même.

Remarque

L’échange de champs d’enregistrement DAO (DFX) est très similaire à l’échange de champs d’enregistrement (RFX) dans les classes de base de données MFC odbc ( , CDatabaseCRecordset). Si vous comprenez RFX, il est facile d’utiliser DFX.

Un CDaoFieldExchange objet fournit les informations de contexte nécessaires à l’échange de champs d’enregistrement DAO. CDaoFieldExchange 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 DFX sont effectuées sur les membres de données de classe recordset de types définis par FieldType enum dans .CDaoFieldExchange Les valeurs FieldType possibles sont les suivantes :

  • CDaoFieldExchange::outputColumn pour les membres de données de champ.

  • CDaoFieldExchange::param pour les membres de données de paramètre.

La fonction membre IsValidOperation est fournie pour écrire vos propres routines DFX personnalisées. Vous utiliserez fréquemment SetFieldType dans vos fonctions CDaoRecordset ::D oFieldExchange . Pour plus d’informations sur les fonctions globales DFX, consultez Fonctions Exchange de champ d’enregistrement. Pour plus d’informations sur l’écriture de routines DFX personnalisées pour vos propres types de données, consultez la Note technique 53.

Hiérarchie d'héritage

CDaoFieldExchange

Spécifications

En-tête : afxdao.h

CDaoFieldExchange ::IsValidOperation

Si vous écrivez votre propre fonction DFX, appelez IsValidOperation au début de votre fonction pour déterminer si l’opération actuelle peut être effectuée sur un type de membre de données de champ particulier (a CDaoFieldExchange::outputColumn ou a CDaoFieldExchange::param).

BOOL IsValidOperation();

Valeur de retour

Différent de zéro si l’opération actuelle est appropriée pour le type de champ mis à jour.

Notes

Certaines des opérations effectuées par le mécanisme DFX s’appliquent uniquement à l’un des types de champs possibles. Suivez le modèle des fonctions DFX existantes.

Pour plus d’informations sur l’écriture de routines DFX personnalisées, consultez la Note technique 53.

CDaoFieldExchange ::m_nOperation

Identifie l’opération à effectuer sur l’objet CDaoRecordset associé à l’objet d’échange de champs.

Notes

L’objet CDaoFieldExchange fournit le contexte pour un certain nombre d’opérations DFX différentes sur le jeu d’enregistrements.

Remarque

La PSEUDONULL valeur décrite sous les MarkForAddNew opérations SetFieldNull ci-dessous est une valeur utilisée pour marquer les champs Null. Le mécanisme d’échange de champs d’enregistrement DAO (DFX) utilise cette valeur pour déterminer quels champs ont été explicitement marqués Null. PSEUDONULLn’est pas obligatoire pour et COleCurrency les COleDateTime champs.

Les valeurs m_nOperation possibles sont les suivantes :

Operation Description
AddToParameterList Génère la clause PARAMETERS de l’instruction SQL.
AddToSelectList Génère la clause SELECT de l’instruction SQL.
BindField Lie un champ dans la base de données à un emplacement mémoire dans votre application.
BindParam Définit les valeurs de paramètre pour la requête du jeu d’enregistrements.
Fixup Définit l’état Null d’un champ.
AllocCache Alloue le cache utilisé pour rechercher les champs « sales » dans le jeu d’enregistrements.
StoreField Enregistre l’enregistrement actif dans le cache.
LoadField Restaure les variables membres de données mises en cache dans le jeu d’enregistrements.
FreeCache Libère le cache utilisé pour vérifier les champs « sales » dans le jeu d’enregistrements.
SetFieldNull Définit l’état d’un champ sur Null et la valeur sur PSEUDONULL.
MarkForAddNew Marque les champs « dirty » si ce n’est pas PSEUDONULL.
MarkForEdit Marque les champs « sale » s’ils ne correspondent pas au cache.
SetDirtyField Définit les valeurs de champ marquées comme « dirty ».
DumpField Vide le contenu d’un champ (débogage uniquement).
MaxDFXOperation Utilisé pour la vérification des entrées.

CDaoFieldExchange ::m_prs

Contient un pointeur vers l’objet CDaoRecordset associé à l’objet CDaoFieldExchange .

Notes

CDaoFieldExchange ::SetFieldType

Appelez SetFieldType le remplacement de DoFieldExchange votre CDaoRecordset classe.

void SetFieldType(UINT nFieldType);

Paramètres

nFieldType
Valeur de l’énumération FieldType, déclarée dans CDaoFieldExchange, qui peut être l’une des suivantes :

  • CDaoFieldExchange::outputColumn

  • CDaoFieldExchange::param

Notes

Normalement, ClassWizard écrit cet appel pour vous. Si vous écrivez votre propre fonction et que vous utilisez l’Assistant pour écrire votre fonction, ajoutez des appels à votre DoFieldExchange propre fonction en dehors de la carte de champs. Si vous n’utilisez pas l’Assistant, il n’y aura pas de mappage de champs. L’appel précède les appels aux fonctions DFX, un pour chaque membre de données de champ de votre classe et identifie le type de champ comme CDaoFieldExchange::outputColumn.

Si vous paramétrez votre classe recordset, vous devez ajouter des appels DFX pour tous les membres de données de paramètre (en dehors du mappage de champs) et précéder ces appels avec un appel à SetFieldType. Transmettez la valeur CDaoFieldExchange::param. (Vous pouvez, à la place, utiliser un CDaoQueryDef et définissez ses valeurs de paramètre.)

En général, chaque groupe d’appels de fonction DFX 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 DFX qui suivent l’appel SetFieldType .

Voir aussi

Graphique hiérarchique
CDaoRecordset, classe