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 CDaoRecordViewauch 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

CObject

CCmdTarget

CWnd

CView

CScrollView

CFormView

CDaoRecordView

Anforderungen

Header: afxdao.h

CDaoRecordView::CDaoRecordView

Wenn Sie ein Objekt eines von einem Typ abgeleiteten CDaoRecordViewTyps 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::DoDataExchangewerden. 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 CDaoRecordsetder 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, OnUpdateRecordNextoder 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