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 ( , CDatabase
CRecordset
). 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. PSEUDONULL
n’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
.