CDaoRecordView-Klasse
Eine Sicht, die Datenbankdatensätze in Steuerelementen anzeigt.
Hinweis
DAO wird bis Office 2013 unterstützt. DAO 3.6 ist die endgültige Version und gilt als veraltet.
Syntax
class AFX_NOVTABLE CDaoRecordView : public CFormView
Member
Geschützte Konstruktoren
Name | Beschreibung |
---|---|
CDaoRecordView::CDaoRecordView | Erstellt ein CDaoRecordView -Objekt. |
Öffentliche Methoden
Name | Beschreibung |
---|---|
CDaoRecordView::IsOnFirstRecord | Gibt "nonzero" zurück, wenn der aktuelle Datensatz der erste Datensatz im zugeordneten Recordset ist. |
CDaoRecordView::IsOnLastRecord | Gibt "nonzero" zurück, wenn der aktuelle Datensatz der letzte Datensatz im zugeordneten Recordset ist. |
CDaoRecordView::OnGetRecordset | Gibt einen Zeiger auf ein Objekt einer klasse zurück, die von CDaoRecordset . ClassWizard setzt diese Funktion für Sie außer Kraft und erstellt bei Bedarf das Recordset. |
CDaoRecordView::OnMove | Wenn sich der aktuelle Datensatz geändert hat, wird er in der Datenquelle aktualisiert, und wechselt dann zum angegebenen Datensatz (nächster, vorheriger, erster oder letzter Datensatz). |
Hinweise
Die Ansicht ist eine Formularansicht, die direkt mit einem CDaoRecordset
Objekt verbunden ist. Die Ansicht wird aus einer Dialogvorlagenressource erstellt und zeigt die Felder des Objekts in den Steuerelementen der CDaoRecordset
Dialogfeldvorlage an. Das CDaoRecordView
Objekt verwendet Dialogdatenaustausch (Dialog Data Exchange, DDX) und DAO-Datensatzfeldaustausch (DFX), um die Verschiebung von Daten zwischen den Steuerelementen im Formular und den Feldern des Recordsets zu automatisieren. CDaoRecordView
stellt außerdem eine Standardimplementierung für den Wechsel zum ersten, nächsten, vorherigen oder letzten Datensatz sowie eine Schnittstelle zum Aktualisieren des aktuell angezeigten Datensatzes bereit.
Hinweis
Die DAO-Datenbankklassen unterscheiden sich von den MFC-Datenbankklassen basierend auf Open Database Connectivity (ODBC). Alle DAO-Datenbankklassennamen weisen das Präfix "CDao" auf. Sie können weiterhin auf ODBC-Datenquellen mit den DAO-Klassen zugreifen. Die DAO-Klassen bieten in der Regel überlegene Funktionen, da sie das Microsoft Jet-Datenbankmodul verwenden.
Die am häufigsten verwendete Methode zum Erstellen der Datensatzansicht ist der Anwendungs-Assistent. Der Anwendungs-Assistent erstellt sowohl die Datensatzansichtsklasse als auch die zugehörige Recordset-Klasse als Teil der Skelettstartanwendung.
Wenn Sie einfach ein einzelnes Formular benötigen, ist der Ansatz des Anwendungs-Assistenten einfacher. Mit ClassWizard können Sie sich später im Entwicklungsprozess für die Verwendung einer Datensatzansicht entscheiden. Wenn Sie die Datensatzansichtsklasse nicht mit dem Anwendungs-Assistenten erstellen, können Sie sie später mit ClassWizard erstellen. Die Verwendung von ClassWizard zum Erstellen einer Datensatzansicht und eines Recordsets separat und anschließendes Verbinden ist der flexibelste Ansatz, da sie Ihnen mehr Kontrolle beim Benennen der Recordsetklasse und deren . H/. CPP-Dateien. Mit diesem Ansatz können Sie auch mehrere Datensatzansichten für dieselbe Recordsetklasse verwenden.
Damit Endbenutzer einfach von Datensatz zu Datensatz in der Datensatzansicht wechseln können, erstellt der Anwendungs-Assistent Menüressourcen (und optional Symbolleistenressourcen), um zum ersten, nächsten, vorherigen oder letzten Datensatz zu wechseln. Wenn Sie eine Datensatzansichtsklasse mit ClassWizard erstellen, müssen Sie diese Ressourcen selbst mit dem Menü- und Bitmap-Editor erstellen.
Informationen zur Standardimplementierung zum Verschieben von Datensatz zu Datensatz finden Sie unter IsOnFirstRecord
und im Artikel "Verwenden einer Datensatzansicht", die sowohl für beide CRecordView
als CDaoRecordView
auch IsOnLastRecord
für .
CDaoRecordView
verfolgt die Position des Benutzers im Recordset nach, damit die Datensatzansicht die Benutzeroberfläche aktualisieren kann. Wenn der Benutzer zum Ende des Recordsets wechselt, deaktiviert die Datensatzansicht Benutzeroberflächenobjekte , z. B. Menüelemente oder Symbolleistenschaltflächen, um sich weiter in die gleiche Richtung zu bewegen.
Weitere Informationen zum Deklarieren und Verwenden ihrer Datensatzansichts- und Recordsetklassen finden Sie unter "Entwerfen und Erstellen einer Datensatzansicht" im Artikel "Datensatzansichten". Weitere Informationen zur Funktionsweise von Datensatzansichten und deren Verwendung finden Sie im Artikel "Verwenden einer Datensatzansicht". Alle oben genannten Artikel gelten für beide CRecordView
und CDaoRecordView
.
Vererbungshierarchie
CDaoRecordView
Anforderungen
Header: afxdao.h
CDaoRecordView::CDaoRecordView
Wenn Sie ein Objekt eines von einem Typ abgeleiteten CDaoRecordView
Typs erstellen, rufen Sie beide Formen des Konstruktors auf, um das Ansichtsobjekt zu initialisieren und die Dialogressource zu identifizieren, auf der die Ansicht basiert.
explicit CDaoRecordView(LPCTSTR lpszTemplateName);
explicit CDaoRecordView(UINT nIDTemplate);
Parameter
lpszTemplateName
Enthält eine mit Null beendete Zeichenfolge, die den Namen einer Dialogvorlagenressource darstellt.
nIDTemplate
Enthält die ID-Nummer einer Dialogvorlagenressource.
Hinweise
Sie können die Ressource entweder anhand des Namens identifizieren (eine Zeichenfolge als Argument an den Konstruktor übergeben) oder durch die ID (eine nicht signierte ganze Zahl als Argument übergeben). Die Verwendung einer Ressourcen-ID wird empfohlen.
Hinweis
Die abgeleitete Klasse muss einen eigenen Konstruktor bereitstellen. Rufen Sie im Konstruktor der abgeleiteten Klasse den Konstruktor CDaoRecordView::CDaoRecordView
mit dem Ressourcennamen oder der ID als Argument auf.
CDaoRecordView::OnInitialUpdate
Aufrufe CWnd::UpdateData
, die aufgerufen CWnd::DoDataExchange
werden. Dieser anfängliche Aufruf zum DoDataExchange
Verbinden von CDaoRecordView
Steuerelementen (indirekt) mit CDaoRecordset
Felddatenmembern, die von ClassWizard erstellt wurden. Diese Datenmember können erst verwendet werden, nachdem Sie die Basisklassenmemberfunktion CFormView::OnInitialUpdate
aufgerufen haben.
Hinweis
Wenn Sie ClassWizard verwenden, definiert der Assistent einen enum
Wert CDaoRecordView::IDD
in der Klassendeklaration und verwendet ihn in der Memberinitialisierungsliste für den Konstruktor.
CMyDaoRecordView::CMyDaoRecordView()
: CDaoRecordView(CMyDaoRecordView::IDD)
{
m_pSet = NULL;
// TODO: add construction code here
}
CDaoRecordView::IsOnFirstRecord
Rufen Sie diese Memberfunktion auf, um zu bestimmen, ob der aktuelle Datensatz der erste Datensatz im Recordsetobjekt ist, das dieser Datensatzansicht zugeordnet ist.
BOOL IsOnFirstRecord();
Rückgabewert
Nonzero, wenn der aktuelle Datensatz der erste Datensatz im Recordset ist; andernfalls 0.
Hinweise
Diese Funktion eignet sich zum Schreiben eigener Implementierungen der standardbefehlsaktualisierungshandler, die von ClassWizard geschrieben wurden.
Wenn der Benutzer zum ersten Datensatz wechselt, deaktiviert das Framework alle Benutzeroberflächenobjekte (z. B. Menüelemente oder Symbolleistenschaltflächen), die Sie für den Wechsel zum ersten oder vorherigen Datensatz haben.
CDaoRecordView::IsOnLastRecord
Rufen Sie diese Memberfunktion auf, um zu bestimmen, ob der aktuelle Datensatz der letzte Datensatz im Recordsetobjekt ist, das dieser Datensatzansicht zugeordnet ist.
BOOL IsOnLastRecord();
Rückgabewert
Nonzero, wenn der aktuelle Datensatz der letzte Datensatz im Recordset ist; andernfalls 0.
Hinweise
Diese Funktion eignet sich zum Schreiben eigener Implementierungen der Standardbefehlsaktualisierungshandler, die ClassWizard schreibt, um eine Benutzeroberfläche für den Wechsel von Datensatz zu Datensatz zu unterstützen.
Achtung
Das Ergebnis dieser Funktion ist zuverlässig, mit der Ausnahme, dass die Ansicht möglicherweise nicht das Ende des Recordsets erkennen kann, bis der Benutzer ihn verschoben hat. Der Benutzer muss möglicherweise über den letzten Datensatz hinausgehen, bevor die Datensatzansicht erkennen kann, dass alle Benutzeroberflächenobjekte deaktiviert werden müssen, um zum nächsten oder letzten Datensatz zu wechseln. Wenn der Benutzer über den letzten Datensatz hinaus wechselt und dann zurück zum letzten Datensatz (oder davor) wechselt, kann die Datensatzansicht die Position des Benutzers im Recordset nachverfolgen und Benutzeroberflächenobjekte ordnungsgemäß deaktivieren.
CDaoRecordView::OnGetRecordset
Gibt einen Zeiger auf das abgeleitete Objekt zurück, das CDaoRecordset
der Datensatzansicht zugeordnet ist.
virtual CDaoRecordset* OnGetRecordset() = 0;
Rückgabewert
Ein Zeiger auf ein CDaoRecordset
-abgeleitetes Objekt, wenn das Objekt erfolgreich erstellt wurde; andernfalls ein NULL-Zeiger.
Hinweise
Sie müssen diese Memberfunktion überschreiben, um ein Recordset-Objekt zu erstellen oder abzurufen und einen Zeiger darauf zurückzugeben. Wenn Sie die Datensatzansichtsklasse mit ClassWizard deklarieren, schreibt der Assistent eine Standardüberschreibung für Sie. Die Standardimplementierung von ClassWizard gibt den Recordsetzeiger zurück, der in der Datensatzansicht gespeichert ist, sofern vorhanden. Andernfalls erstellt es ein Recordset-Objekt des Typs, den Sie mit ClassWizard angegeben haben, und ruft dessen Open
Memberfunktion auf, um die Tabelle zu öffnen oder die Abfrage auszuführen, und gibt dann einen Zeiger auf das Objekt zurück.
Weitere Informationen und Beispiele finden Sie im Artikel Datensatzansichten: Verwenden einer Datensatzansicht.
CDaoRecordView::OnMove
Rufen Sie diese Memberfunktion auf, um zu einem anderen Datensatz im Recordset zu wechseln, und zeigen Sie die zugehörigen Felder in den Steuerelementen der Datensatzansicht an.
virtual BOOL OnMove(UINT nIDMoveCommand);
Parameter
nIDMoveCommand
Einer der folgenden Standardbefehls-ID-Werte:
ID_RECORD_FIRST Zum ersten Datensatz im Recordset wechseln.
ID_RECORD_LAST Zum letzten Datensatz im Recordset wechseln.
ID_RECORD_NEXT Zum nächsten Datensatz im Recordset wechseln.
ID_RECORD_PREV Zum vorherigen Datensatz im Recordset wechseln.
Rückgabewert
Nonzero, wenn die Verschiebung erfolgreich war; andernfalls 0, wenn die Verschiebungsanforderung verweigert wurde.
Hinweise
Die Standardimplementierung ruft die entsprechende Move-Memberfunktion des Objekts auf, das CDaoRecordset
der Datensatzansicht zugeordnet ist.
Aktualisiert standardmäßig den aktuellen Datensatz in der Datenquelle, OnMove
wenn der Benutzer ihn in der Datensatzansicht geändert hat.
Der Anwendungs-Assistent erstellt eine Menüressource mit den Menüelementen "Erster Datensatz", "Letzter Datensatz", "Nächster Datensatz" und "Vorheriger Datensatz". Wenn Sie die Option "Anfängliche Symbolleiste" auswählen, erstellt der Anwendungs-Assistent auch eine Symbolleiste mit Schaltflächen, die diesen Befehlen entsprechen.
Wenn Sie den letzten Datensatz im Recordset übergehen, zeigt die Datensatzansicht weiterhin den letzten Datensatz an. Wenn Sie den ersten Datensatz rückwärts durchlaufen, zeigt die Datensatzansicht weiterhin den ersten Datensatz an.
Achtung
Beim Aufrufen OnMove
wird eine Ausnahme ausgelöst, wenn das Recordset keine Datensätze enthält. Rufen Sie die entsprechende Updatehandlerfunktion der Benutzeroberfläche – , OnUpdateRecordFirst
, OnUpdateRecordLast
, OnUpdateRecordNext
oder OnUpdateRecordPrev
– vor dem entsprechenden Verschiebungsvorgang auf, um zu bestimmen, ob das Recordset Datensätze enthält.
Siehe auch
CFormView-Klasse
Hierarchiediagramm
CDaoRecordset-Klasse
CDaoTableDef-Klasse
CDaoQueryDef-Klasse
CDaoDatabase-Klasse
CDaoWorkspace-Klasse
CFormView-Klasse