Freigeben über


Snapshot

Eine 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 Requeryneu erstellen.

Hinweis

Dieses Thema bezieht sich auf die MFC-ODBC-Klassen. Wenn Sie die MFC DAO-Klassen anstelle der MFC ODBC-Klassen verwenden, lesen Sie CDaoRecordset::Open für eine Beschreibung von Recordsets vom Typ Snapshot.

Sie können aktualisierbare oder schreibgeschützte Momentaufnahmen mit den Datenbankklassen erstellen. Im Gegensatz zu einem Dynaset spiegelt eine aktualisierbare 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 einer Momentaufnahme hinzugefügt wurden, werden erst dann für die Momentaufnahme sichtbar, wenn Sie einen Anruf ausführen Requery.

Tipp

Eine 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 behoben bleiben müssen, als wenn Sie einen Bericht generieren oder Berechnungen durchführen. Dennoch kann die Datenquelle von Zeit zu Zeit erheblich von Ihrer Momentaufnahme 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 Momentaufnahmen verwenden, möchten Sie nicht bewirken, dass die Cursorbibliothek geladen wird.

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 Momentaufnahmen (statische Cursor) möglicherweise nicht aktualisiert werden. Überprüfen Sie ihre Treiberdokumentation auf unterstützte Cursortypen und die unterstützten Parallelitätstypen. Um aktualisierbare Momentaufnahmen 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 Momentaufnahmen als auch Dynasets verwenden möchten, müssen Sie diese auf zwei verschiedenen CDatabase Objekten (zwei verschiedene Verbindungen) basieren.

Weitere Informationen zu den Eigenschaftenmomentaufnahmen, die für alle Recordsets freigegeben werden, finden Sie unter Recordset (ODBC).For more information about the properties snapshots share with all recordsets, see Recordset (ODBC). Weitere Informationen zu ODBC und Momentaufnahmen, einschließlich der ODBC-Cursorbibliothek, finden Sie unter ODBC.

Siehe auch

Open Database Connectivity (ODBC)