Snapshot
Ein Momentaufnahme ist ein Recordset, das eine statische Ansicht der Daten widerspiegelt, wie sie zum Zeitpunkt der Erstellung der Momentaufnahme vorhanden ist. Wenn Sie die Momentaufnahme öffnen und zu allen Datensätzen wechseln, werden die darin enthaltenen Datensätze und deren Werte erst geändert, wenn Sie die Momentaufnahme durch Aufrufen Requery
neu erstellen.
Hinweis
Dieses Thema bezieht sich auf die MFC-ODBC-Klassen. Wenn Sie die MFC DAO-Klassen anstelle der MFC ODBC-Klassen verwenden, finden Sie unter CDaoRecordset::Open eine Beschreibung von Momentaufnahme-Typ-Recordsets.
Sie können aktualisierbare oder schreibgeschützte Momentaufnahme s mit den Datenbankklassen erstellen. Im Gegensatz zu einem Dynaset spiegelt ein aktualisierbarer Momentaufnahme keine Änderungen an Datensatzwerten wider, die von anderen Benutzern vorgenommen wurden, es spiegelt jedoch Aktualisierungen und Löschungen wider, die von Ihrem Programm vorgenommen wurden. Datensätze, die einem Momentaufnahme hinzugefügt wurden, werden erst beim Aufruf Requery
für die Momentaufnahme sichtbar.
Tipp
Ein Momentaufnahme ist ein statischer ODBC-Cursor. Statische Cursor erhalten erst dann eine Datenzeile, wenn Sie zu diesem Datensatz scrollen. Um sicherzustellen, dass alle Datensätze sofort abgerufen werden, können Sie bis zum Ende des Recordsets scrollen und dann zum ersten Datensatz scrollen, den Sie sehen möchten. Beachten Sie jedoch, dass das Scrollen am Ende zusätzlichen Aufwand und eine geringere Leistung zur Folge hat.
Momentaufnahmen sind am wertvollsten, wenn Die Daten während der Vorgänge neu Standard behoben werden müssen, als wenn Sie einen Bericht generieren oder Berechnungen ausführen. Dennoch kann die Datenquelle von Ihrem Momentaufnahme erheblich abweichen, sodass Sie sie von Zeit zu Zeit neu erstellen möchten.
Die Snapshot-Unterstützung basiert auf der ODBC-Cursorbibliothek, die statische Cursor und positionierte Updates (für die Aktualisierung erforderlich) für jeden Treiber der Ebene 1 bereitstellt. Die Cursorbibliothek-DLL muss im Arbeitsspeicher für diese Unterstützung geladen werden. Wenn Sie ein CDatabase
Objekt erstellen und dessen OpenEx
Memberfunktion aufrufen, müssen Sie die CDatabase::useCursorLib
Option des dwOptions-Parameters angeben. Wenn Sie die Memberfunktion aufrufen, wird die Open
Cursorbibliothek standardmäßig geladen. Wenn Sie Dynasets anstelle von Momentaufnahme verwenden, möchten Sie die Cursorbibliothek nicht laden.
Momentaufnahmen sind nur verfügbar, wenn die ODBC-Cursorbibliothek geladen wurde, wenn das CDatabase
Objekt erstellt wurde oder der von Ihnen verwendete ODBC-Treiber statische Cursor unterstützt.
Hinweis
Bei einigen ODBC-Treibern können Momentaufnahme (statische Cursor) möglicherweise nicht aktualisiert werden. Überprüfen Sie ihre Treiberdokumentation auf unterstützte Cursortypen und die unterstützten Parallelitätstypen. Um aktualisierbare Momentaufnahme zu gewährleisten, stellen Sie sicher, dass Sie die Cursorbibliothek beim Erstellen eines CDatabase
Objekts in den Arbeitsspeicher laden. Weitere Informationen finden Sie unter ODBC: Die ODBC-Cursorbibliothek.
Hinweis
Wenn Sie sowohl Momentaufnahme als auch Dynasets verwenden möchten, müssen Sie diese auf zwei verschiedenen CDatabase
Objekten (zwei verschiedene Verbindungen) basieren.
Weitere Informationen zu den Eigenschaften Momentaufnahme s, die für alle Recordsets freigegeben werden, finden Sie unter Recordset (ODBC).For more information about the properties Momentaufnahme s share with all recordsets, see Recordset (ODBC). Weitere Informationen zu ODBC und Momentaufnahme, einschließlich der ODBC-Cursorbibliothek, finden Sie unter ODBC.