Share via


Snapshot

Aktualisiert: November 2007

Ein Snapshot ist ein Recordset, das eine statische Ansicht von Daten enthält. Snapshots weisen dabei immer die Werte auf, die sie zu dem Zeitpunkt hatten, als der Snapshot erstellt wurde. Wenn ein Snapshot geöffnet und alle Datensätze angezeigt wurden, ändern sich weder der Satz der im Snapshot enthaltenen Datensätze noch deren Werte, bis der Snapshot durch den Aufruf von Requery neu erstellt wird.

Hinweis:

Dieses Thema bezieht sich auf die MFC-ODBC-Klassen. Falls anstatt der MFC-ODBC-Klassen die MFC-DAO-Klassen verwendet werden, lesen Sie die Informationen zu CDaoRecordset::Open. Dort finden Sie eine Beschreibung der Recordsets vom Typ Snapshot.

Mit Datenbankklassen können aktualisierbare oder schreibgeschützte Snapshots erstellt werden. Im Gegensatz zu einem Dynaset spiegelt ein aktualisierbarer Snapshot keine Änderungen an Werten von Datensätzen wider, die durch andere Benutzer vorgenommen wurden. Es werden allerdings Aktualisierungen und Löschungen angezeigt, die von Ihrem Programm vorgenommen wurden. Zu einem Snapshot hinzugefügte Datensätze werden in dem Snapshot so lange nicht angezeigt, bis Requery aufgerufen wird.

Tipp:

Ein Snapshot ist ein "statischer Cursor" in ODBC. Durch statische Cursor können Datenzeilen erst abgerufen werden, wenn zum jeweiligen Datensatz gewechselt wird. Um sicherzustellen, dass alle Datensätze sofort abgerufen werden, wechseln Sie zum Ende des Recordsets und danach zum ersten anzuzeigenden Datensatz. Beachten Sie jedoch, dass durch einen Wechsel zum Ende eines Recordsets die Systemleistung herabgesetzt werden kann.

Snapshots sind besonders nützlich, wenn Daten bei Operationen wie der Generierung eines Berichts oder der Ausführung von Berechnungen unverändert bleiben sollen. Da nach einiger Zeit deutliche Unterschiede zwischen dem Snapshot und der Datenquelle auftreten können, sollte der Snapshot in regelmäßigen Abständen neu erstellt werden.

Die Unterstützung für Snapshots beruht auf der ODBC-Cursorbibliothek, die die für die Aktualisierungen erforderliche statische Cursor und positionierbare Aktualisierungen für Level 1-Treiber bereitstellt. Die Cursorbibliothek-DLL muss für diese Unterstützung geladen sein. Wenn ein CDatabase-Objekt konstruiert und die zugehörige OpenEx-Memberfunktion aufgerufen wird, muss die CDatabase::useCursorLib-Option des dwOptions-Parameters angegeben werden. Durch Aufruf der Open-Memberfunktion wird die Cursorbibliothek standardmäßig geladen. Wenn statt Snapshots Dynasets verwendet werden, darf die Cursorbibliothek nicht geladen werden.

Snapshots stehen nur dann zur Verfügung, wenn bei der Konstruktion des CDatabase-Objekts die ODBC-Cursorbibliothek geladen war oder wenn der verwendete ODBC-Treiber statische Cursor unterstützt.

Hinweis:

Bei einigen ODBC-Treibern sind Snapshots, also statische Cursor, möglicherweise nicht aktualisierbar. Lesen Sie in der Dokumentation des Treibers nach, welche Cursortypen und Parallelverarbeitungsarten unterstützt werden. Wenn sichergestellt werden soll, dass Snapshots aktualisierbar sind, muss vor dem Konstruieren eines CDatabase-Objekts die Cursorbibliothek in den Speicher geladen werden. Weitere Informationen finden Sie unter ODBC: Die ODBC-Cursorbibliothek.

Hinweis:

Wenn sowohl Snapshots als auch Dynasets verwendet werden sollen, müssen diese auf zwei verschiedenen CDatabase-Objekten, also zwei unterschiedlichen Verbindungen basieren.

Weitere Informationen über gemeinsame Eigenschaften von Snapshots und Recordsets finden Sie unter Recordset (ODBC). Weitere Informationen über ODBC*,* Snapshots und die ODBC-Cursorbibliothek finden Sie unter ODBC.

Siehe auch

Konzepte

Open Database Connectivity (ODBC)