COleDBRecordView, classe
Vue qui affiche des enregistrements de base de données dans des contrôles.
Syntaxe
class COleDBRecordView : public CFormView
Membres
Constructeurs protégés
Nom | Description |
---|---|
COleDBRecordView ::COleDBRecordView | Construit un objet COleDBRecordView . |
Méthodes publiques
Nom | Description |
---|---|
COleDBRecordView ::OnGetRowset | Retourne une valeur HRESULT standard. |
COleDBRecordView ::OnMove | Met à jour l’enregistrement actif (s’il est sale) 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 CRowset
objet. La vue est créée à partir d’une ressource de modèle de dialogue et affiche les champs de l’objet CRowset
dans les contrôles du modèle de dialogue. L’objet COleDBRecordView
utilise l’échange de données de boîte de dialogue (DDX) et la fonctionnalité de navigation intégrée CRowset
, pour automatiser le déplacement des données entre les contrôles du formulaire et les champs de l’ensemble de lignes. COleDBRecordView
fournit également une implémentation par défaut pour passer au premier, suivant, précédent ou dernier enregistrement et une interface permettant de mettre à jour l’enregistrement actuellement en mode affichage.
Vous pouvez utiliser des fonctions DDX pour COleDbRecordView
obtenir des données directement à partir du jeu d’enregistrements de base de données et l’afficher dans un contrôle de boîte de dialogue. Vous devez utiliser les DDX_*
méthodes (par exemple DDX_Text
), et non les DDX_Field*
fonctions (par exemple DDX_FieldText
) avec COleDbRecordView
. DDX_FieldText
ne fonctionne pas avec COleDbRecordView
car DDX_FieldText
prend un argument supplémentaire de type CRecordset*
(pour CRecordView
) ou CDaoRecordset*
(pour CDaoRecordView
).
Remarque
Si vous utilisez les classes DAO (Data Access Objects) plutôt que les classes OLE DB Consumer Template, utilisez la classe CDaoRecordView à la place. Pour plus d’informations, consultez l’article Vue d’ensemble : Programmation de base de données.
COleDBRecordView
effectue le suivi de la position de l’utilisateur dans l’ensemble de lignes afin que la vue d’enregistrement puisse mettre à jour l’interface utilisateur. Lorsque l’utilisateur passe à la fin de l’ensemble de lignes, 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 les classes d’ensemble de lignes, consultez l’article Using OLE DB Consumer Templates .
Hiérarchie d'héritage
COleDBRecordView
Spécifications
En-tête : afxoledb.h
COleDBRecordView ::COleDBRecordView
Construit un objet COleDBRecordView
.
COleDBRecordView(LPCTSTR lpszTemplateName);
COleDBRecordView(UINT nIDTemplate);
Paramètres
lpszTemplateName
Contient une chaîne terminée par null qui est le nom d’une ressource de modèle de dialogue.
nIDTemplate
Contient le numéro d’ID d’une ressource de modèle de dialogue.
Notes
Lorsque vous créez un objet d’un type dérivé de COleDBRecordView
, appelez l’un des constructeurs pour créer l’objet d’affichage et identifier la ressource de boîte de dialogue sur laquelle la vue est basée. 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).
Remarque
Votre classe dérivée doit fournir son propre constructeur. Dans le constructeur, appelez le constructeur, COleDBRecordView::COleDBRecordView
avec le nom de la ressource ou l’ID comme argument.
COleDBRecordView ::OnGetRowset
Retourne un handle pour l’objet CRowset<> associé à la vue d’enregistrement.
virtual CRowset<>* OnGetRowset() = 0;
Valeur de retour
Valeur HRESULT standard.
Notes
Vous devez remplacer cette fonction membre pour construire ou obtenir un objet d’ensemble de lignes et y retourner un handle. 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 handle d’ensemble de lignes stocké dans la vue d’enregistrement s’il en existe un. Si ce n’est pas le cas, il construit un objet d’ensemble de lignes 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 handle à l’objet.
Remarque
Avant MFC 7.0, OnGetRowset
a retourné un pointeur vers CRowset
. Si vous avez du code qui appelleOnGetRowset
, vous devez modifier le type de retour en CRowset<> de la classe templatée.
Exemple
CFrameWnd* pFrame = (CFrameWnd*)AfxGetMainWnd();
COleDBRecordView* pView = (COleDBRecordView*)pFrame->GetActiveView();
// CProductAccessor is a user-defined accessor class
CRowset<CAccessor<CProductAccessor>>* pRowSet =
(CRowset<CAccessor<CProductAccessor>>*)pView->OnGetRowset();
Pour plus d’informations et d’exemples, consultez l’article Vues d’enregistrement : Utilisation d’un affichage d’enregistrement.
COleDBRecordView ::OnMove
Se déplace vers un autre enregistrement dans l’ensemble de lignes et affiche 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 : passez au premier enregistrement dans le jeu d’enregistrements.
ID_RECORD_LAST : passez au dernier enregistrement dans le jeu d’enregistrements.
ID_RECORD_NEXT : passez à l’enregistrement suivant dans le jeu d’enregistrements.
ID_RECORD_PREV : passez à 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 appropriée Move
de l’objet CRowset
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 ancreable, 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.