COleDBRecordView-Klasse
Eine Sicht, die Datenbankdatensätze in Steuerelementen anzeigt.
Syntax
class COleDBRecordView : public CFormView
Member
Geschützte Konstruktoren
Name | Beschreibung |
---|---|
COleDBRecordView::COleDBRecordView | Erstellt ein COleDBRecordView -Objekt. |
Öffentliche Methoden
Name | Beschreibung |
---|---|
COleDBRecordView::OnGetRowset | Gibt einen HRESULT-Standardwert zurück. |
COleDBRecordView::OnMove | Aktualisiert den aktuellen Datensatz (falls geändert) in der Datenquelle und wechselt dann zum angegebenen Datensatz (nächster, vorheriger, erster oder letzter Datensatz). |
Hinweise
Die Ansicht ist eine Formularansicht, die direkt mit einem CRowset
Objekt verbunden ist. Die Ansicht wird aus einer Dialogvorlagenressource erstellt und zeigt die Felder des Objekts in den Steuerelementen der CRowset
Dialogfeldvorlage an. Das COleDBRecordView
Objekt verwendet den Dialogdatenaustausch (Dialog Data Exchange, DDX) und die navigationsfähige CRowset
Funktionalität, um die Bewegung von Daten zwischen den Steuerelementen im Formular und den Feldern des Rowsets zu automatisieren. COleDBRecordView
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.
Mit DDX-Funktionen COleDbRecordView
können Sie Daten direkt aus dem Datenbankrecordset abrufen und in einem Dialogfeldsteuerelement anzeigen. Sie sollten die DDX_*
Methoden (z DDX_Text
. B. ), nicht die DDX_Field*
Funktionen (z DDX_FieldText
. B. ) mit COleDbRecordView
verwenden. DDX_FieldText
funktioniert nicht, COleDbRecordView
da DDX_FieldText
ein zusätzliches Argument vom Typ CRecordset*
(für CRecordView
) oder CDaoRecordset*
(für CDaoRecordView
) verwendet wird.
Hinweis
Wenn Sie mit den DAO-Klassen (Data Access Objects) anstelle der OLE DB Consumer Template-Klassen arbeiten, verwenden Sie stattdessen die Klasse CDaoRecordView . Weitere Informationen finden Sie im Artikel Übersicht: Datenbankprogrammierung.
COleDBRecordView
verfolgt die Position des Benutzers im Rowset nach, damit die Datensatzansicht die Benutzeroberfläche aktualisieren kann. Wenn der Benutzer zum Ende des Rowsets wechselt, deaktiviert die Datensatzansicht Benutzeroberflächenobjekte , z. B. Menüelemente oder Symbolleistenschaltflächen, um sich weiter in die gleiche Richtung zu bewegen.
Weitere Informationen zu Rowsetklassen finden Sie im Artikel "Using OLE DB Consumer Templates ".
Vererbungshierarchie
COleDBRecordView
Anforderungen
Header: afxoledb.h
COleDBRecordView::COleDBRecordView
Erstellt ein COleDBRecordView
-Objekt.
COleDBRecordView(LPCTSTR lpszTemplateName);
COleDBRecordView(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
Wenn Sie ein Objekt eines typs erstellen, von COleDBRecordView
dem abgeleitet wird, rufen Sie einen der Konstruktoren auf, um das Ansichtsobjekt zu erstellen und die Dialogressource zu identifizieren, auf der die Ansicht basiert. Sie können die Ressource entweder anhand des Namens (übergeben Sie eine Zeichenfolge als Argument an den Konstruktor) oder durch die ID (eine nicht signierte ganze Zahl als Argument übergeben) identifizieren.
Hinweis
Die abgeleitete Klasse muss einen eigenen Konstruktor bereitstellen. Rufen Sie im Konstruktor den Konstruktor mit COleDBRecordView::COleDBRecordView
dem Ressourcennamen oder der ID als Argument auf.
COleDBRecordView::OnGetRowset
Gibt ein Handle für das CRowset<> -Objekt zurück, das der Datensatzansicht zugeordnet ist.
virtual CRowset<>* OnGetRowset() = 0;
Rückgabewert
Ein HRESULT-Standardwert.
Hinweise
Sie müssen diese Memberfunktion überschreiben, um ein Rowset-Objekt zu erstellen oder abzurufen und ein Handle zurückzugeben. Wenn Sie die Datensatzansichtsklasse mit ClassWizard deklarieren, schreibt der Assistent eine Standardüberschreibung für Sie. Die Standardimplementierung von ClassWizard gibt das rowset-Handle zurück, das in der Datensatzansicht gespeichert ist, falls vorhanden. Andernfalls erstellt es ein Rowset-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 ein Handle an das Objekt zurück.
Hinweis
Vor MFC 7.0 wurde OnGetRowset
ein Zeiger zurückgegeben.CRowset
Wenn Sie Code haben, der aufruft OnGetRowset
, müssen Sie den Rückgabetyp in die templatisierte Klasse CRowset<> ändern.
Beispiel
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();
Weitere Informationen und Beispiele finden Sie im Artikel Datensatzansichten: Verwenden einer Datensatzansicht.
COleDBRecordView::OnMove
Wechselt zu einem anderen Datensatz im Rowset und zeigt seine Felder in den Steuerelementen der Datensatzansicht an.
virtual BOOL OnMove(UINT nIDMoveCommand);
Parameter
nIDMoveCommand
Einer der folgenden Standardbefehls-ID-Werte:
ID_RECORD_FIRST – Wechseln zum ersten Datensatz im Recordset.
ID_RECORD_LAST – Wechseln zum letzten Datensatz im Recordset.
ID_RECORD_NEXT – Wechseln zum nächsten Datensatz im Recordset.
ID_RECORD_PREV – Wechseln zum vorherigen Datensatz im Recordset.
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 CRowset
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 "Andockbare 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.