CDaoRecordView, classe
Vue qui affiche des enregistrements de base de données dans des contrôles.
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 AFX_NOVTABLE CDaoRecordView : public CFormView
Membres
Constructeurs protégés
Nom | Description |
---|---|
CDaoRecordView ::CDaoRecordView | Construit un objet CDaoRecordView . |
Méthodes publiques
Nom | Description |
---|---|
CDaoRecordView ::IsOnFirstRecord | Retourne une valeur différente de zéro si l’enregistrement actif est le premier enregistrement du jeu d’enregistrements associé. |
CDaoRecordView ::IsOnLastRecord | Retourne une valeur différente de zéro si l’enregistrement actif est le dernier enregistrement dans le jeu d’enregistrements associé. |
CDaoRecordView ::OnGetRecordset | Retourne un pointeur vers un objet d’une classe dérivée de CDaoRecordset . ClassWizard remplace cette fonction pour vous et crée le jeu d’enregistrements si nécessaire. |
CDaoRecordView ::OnMove | Si l’enregistrement actif a changé, le met à jour sur la source de données, puis passe à l’enregistrement spécifié (suivant, précédent, premier ou dernier). |
Notes
La vue est une vue de formulaire directement connectée à un CDaoRecordset
objet. La vue est créée à partir d’une ressource de modèle de dialogue et affiche les champs de l’objet CDaoRecordset
dans les contrôles du modèle de dialogue. L’objet CDaoRecordView
utilise l’échange de données de dialogue (DDX) et l’échange de champs d’enregistrement DAO (DFX) pour automatiser le déplacement des données entre les contrôles du formulaire et les champs du jeu d’enregistrements. CDaoRecordView
fournit également une implémentation par défaut pour passer au premier, suivant, précédent ou dernier enregistrement et une interface pour la mise à jour de l’enregistrement actuellement en vue.
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 ; les classes DAO offrent généralement des fonctionnalités supérieures, car elles utilisent le moteur de base de données Microsoft Jet.
La façon la plus courante de créer votre vue d’enregistrement consiste à utiliser l’Assistant Application. L’Assistant Application crée à la fois la classe d’affichage d’enregistrements et sa classe recordset associée dans le cadre de votre application de démarrage squelette.
Si vous avez simplement besoin d’un formulaire unique, l’approche de l’Assistant Application est plus facile. ClassWizard vous permet de décider d’utiliser une vue d’enregistrement ultérieurement dans le processus de développement. Si vous ne créez pas la classe d’affichage d’enregistrement avec l’Assistant Application, vous pouvez la créer ultérieurement avec ClassWizard. L’utilisation de ClassWizard pour créer une vue d’enregistrement et un jeu d’enregistrements séparément, puis les connecter est l’approche la plus flexible, car elle vous donne plus de contrôle pour nommer la classe recordset et son . H/. Fichiers CPP. Cette approche vous permet également d’avoir plusieurs vues d’enregistrement sur la même classe d’ensemble d’enregistrements.
Pour faciliter le passage de l’enregistrement à l’enregistrement des utilisateurs finaux dans l’affichage des enregistrements, l’Assistant Application crée des ressources de menu (et éventuellement de barre d’outils) pour passer au premier enregistrement, suivant, précédent ou dernier enregistrement. Si vous créez une classe d’affichage d’enregistrements avec ClassWizard, vous devez créer ces ressources vous-même avec les éditeurs de menu et bitmap.
Pour plus d’informations sur l’implémentation par défaut pour passer de l’enregistrement à l’enregistrement, consultez IsOnFirstRecord
et IsOnLastRecord
l’article Using a Record View, qui s’applique à la fois à la fois CRecordView
à CDaoRecordView
.
CDaoRecordView
effectue le suivi de la position de l’utilisateur dans le jeu d’enregistrements afin que la vue des enregistrements puisse mettre à jour l’interface utilisateur. Lorsque l’utilisateur passe à la fin du jeu d’enregistrements, la vue d’enregistrement désactive les objets d’interface utilisateur ( tels que les éléments de menu ou les boutons de barre d’outils) pour se déplacer plus loin dans la même direction.
Pour plus d’informations sur la déclaration et l’utilisation des classes d’enregistrement et d’ensemble d’enregistrements, consultez « Conception et création d’un affichage d’enregistrement » dans l’article Vues d’enregistrement. Pour plus d’informations sur le fonctionnement des vues d’enregistrement et leur utilisation, consultez l’article Using a Record View. Tous les articles mentionnés ci-dessus s’appliquent aux deux CRecordView
et CDaoRecordView
.
Hiérarchie d'héritage
CDaoRecordView
Spécifications
En-tête : afxdao.h
CDaoRecordView ::CDaoRecordView
Lorsque vous créez un objet d’un type dérivé de CDaoRecordView
, appelez l’une ou l’autre forme du constructeur pour initialiser l’objet d’affichage et identifier la ressource de boîte de dialogue sur laquelle la vue est basée.
explicit CDaoRecordView(LPCTSTR lpszTemplateName);
explicit CDaoRecordView(UINT nIDTemplate);
Paramètres
lpszTemplateName
Contient une chaîne terminée par null qui est le nom d’une ressource de modèle de boîte de dialogue.
nIDTemplate
Contient le numéro d’ID d’une ressource de modèle de boîte de dialogue.
Notes
Vous pouvez identifier la ressource par nom (passer une chaîne en tant qu’argument au constructeur) ou par son ID (passer un entier non signé comme argument). L’utilisation d’un ID de ressource est recommandée.
Remarque
Votre classe dérivée doit fournir son propre constructeur. Dans le constructeur de votre classe dérivée, appelez le constructeur CDaoRecordView::CDaoRecordView
avec le nom de la ressource ou l’ID comme argument.
CDaoRecordView::OnInitialUpdate
appels CWnd::UpdateData
, qui appellent CWnd::DoDataExchange
. Cet appel initial pour DoDataExchange
connecter CDaoRecordView
des contrôles (indirectement) aux CDaoRecordset
membres de données de champ créés par ClassWizard. Ces membres de données ne peuvent pas être utilisés tant que vous n’avez pas appelé la fonction membre de classe CFormView::OnInitialUpdate
de base.
Remarque
Si vous utilisez ClassWizard, l’Assistant définit une enum
valeur CDaoRecordView::IDD
dans la déclaration de classe et l’utilise dans la liste d’initialisation des membres pour le constructeur.
CMyDaoRecordView::CMyDaoRecordView()
: CDaoRecordView(CMyDaoRecordView::IDD)
{
m_pSet = NULL;
// TODO: add construction code here
}
CDaoRecordView ::IsOnFirstRecord
Appelez cette fonction membre pour déterminer si l’enregistrement actif est le premier enregistrement de l’objet recordset associé à cette vue d’enregistrement.
BOOL IsOnFirstRecord();
Valeur de retour
Différent de zéro si l’enregistrement actif est le premier enregistrement dans le jeu d’enregistrements ; sinon 0.
Notes
Cette fonction est utile pour écrire vos propres implémentations des gestionnaires de mise à jour de commande par défaut écrits par ClassWizard.
Si l’utilisateur passe au premier enregistrement, l’infrastructure désactive tous les objets d’interface utilisateur (par exemple, les éléments de menu ou les boutons de barre d’outils) que vous devez déplacer vers le premier ou l’enregistrement précédent.
CDaoRecordView ::IsOnLastRecord
Appelez cette fonction membre pour déterminer si l’enregistrement actif est le dernier enregistrement de l’objet recordset associé à cette vue d’enregistrement.
BOOL IsOnLastRecord();
Valeur de retour
Différent de zéro si l’enregistrement actif est le dernier enregistrement dans le jeu d’enregistrements ; sinon 0.
Notes
Cette fonction est utile pour écrire vos propres implémentations des gestionnaires de mise à jour de commande par défaut que ClassWizard écrit pour prendre en charge une interface utilisateur pour passer de l’enregistrement à l’enregistrement.
Attention
Le résultat de cette fonction est fiable, sauf que la vue peut ne pas être en mesure de détecter la fin du jeu d’enregistrements tant que l’utilisateur ne l’a pas déplacé. L’utilisateur peut avoir à se déplacer au-delà du dernier enregistrement avant que l’affichage d’enregistrement puisse indiquer qu’il doit désactiver tous les objets d’interface utilisateur pour passer au dernier enregistrement ou suivant. Si l’utilisateur passe le dernier enregistrement, puis revient au dernier enregistrement (ou avant), la vue d’enregistrement peut suivre la position de l’utilisateur dans le jeu d’enregistrements et désactiver correctement les objets d’interface utilisateur.
CDaoRecordView ::OnGetRecordset
Retourne un pointeur vers l’objet CDaoRecordset
dérivé associé à la vue d’enregistrement.
virtual CDaoRecordset* OnGetRecordset() = 0;
Valeur de retour
Pointeur vers un CDaoRecordset
objet dérivé si l’objet a été créé avec succès ; sinon, un pointeur NULL.
Notes
Vous devez remplacer cette fonction membre pour construire ou obtenir un objet recordset et renvoyer un pointeur vers celui-ci. Si vous déclarez votre classe d’affichage d’enregistrement avec ClassWizard, l’Assistant écrit un remplacement par défaut pour vous. L’implémentation par défaut de ClassWizard retourne le pointeur de jeu d’enregistrements stocké dans la vue d’enregistrement s’il en existe un. Si ce n’est pas le cas, il construit un objet recordset du type que vous avez spécifié avec ClassWizard et appelle sa Open
fonction membre pour ouvrir la table ou exécuter la requête, puis retourne un pointeur vers l’objet.
Pour plus d’informations et d’exemples, consultez l’article Vues d’enregistrement : Utilisation d’un affichage d’enregistrement.
CDaoRecordView ::OnMove
Appelez cette fonction membre pour passer à un autre enregistrement dans le jeu d’enregistrements et afficher ses champs dans les contrôles de la vue d’enregistrement.
virtual BOOL OnMove(UINT nIDMoveCommand);
Paramètres
nIDMoveCommand
Une des valeurs d’ID de commande standard suivantes :
ID_RECORD_FIRST Passer au premier enregistrement du jeu d’enregistrements.
ID_RECORD_LAST Passer au dernier enregistrement dans le jeu d’enregistrements.
ID_RECORD_NEXT Passer à l’enregistrement suivant dans le jeu d’enregistrements.
ID_RECORD_PREV Déplacer vers l’enregistrement précédent dans le jeu d’enregistrements.
Valeur de retour
Différent de zéro si le déplacement a réussi ; sinon, 0 si la demande de déplacement a été refusée.
Notes
L’implémentation par défaut appelle la fonction membre Move appropriée de l’objet CDaoRecordset
associé à la vue d’enregistrement.
Par défaut, OnMove
met à jour l’enregistrement actif sur la source de données si l’utilisateur l’a modifié dans la vue d’enregistrement.
L’Assistant Application crée une ressource de menu avec les éléments de menu First Record, Last Record, Next Record et Previous Record. Si vous sélectionnez l’option Barre d’outils initiale, l’Assistant Application crée également une barre d’outils avec des boutons correspondant à ces commandes.
Si vous passez au-delà du dernier enregistrement dans le jeu d’enregistrements, la vue d’enregistrement continue d’afficher le dernier enregistrement. Si vous passez en arrière au-delà du premier enregistrement, la vue d’enregistrement continue d’afficher le premier enregistrement.
Attention
L’appel OnMove
lève une exception si le jeu d’enregistrements n’a pas d’enregistrements. Appelez la fonction de gestionnaire de mise à jour de l’interface utilisateur appropriée ( OnUpdateRecordFirst
, , OnUpdateRecordLast
OnUpdateRecordNext
ou OnUpdateRecordPrev
) avant l’opération de déplacement correspondante pour déterminer si le jeu d’enregistrements a des enregistrements.
Voir aussi
CFormView, classe
Graphique hiérarchique
CDaoRecordset, classe
CDaoTableDef, classe
CDaoQueryDef, classe
CDaoDatabase, classe
CDaoWorkspace, classe
CFormView, classe