Recordset: Erneutes Abfragen eines Recordsets (ODBC)
Dieses Thema bezieht sich auf die MFC-ODBC-Klassen.
In diesem Thema wird erläutert, wie Sie ein Recordset-Objekt zum erneuten Abfragen (d. h. Aktualisieren) aus der Datenbank verwenden können und wann Sie dies mit der Requery-Memberfunktion tun möchten.
Die Hauptgründe für das Erneute Abfragen eines Recordsets sind:
Bringen Sie das Recordset in Bezug auf Datensätze, die von Ihnen oder anderen Benutzern hinzugefügt wurden, auf dem neuesten Stand, und datensätze, die von anderen Benutzern gelöscht wurden (die, die Sie löschen, werden bereits im Recordset widergeschlagen).
Aktualisieren Sie das Recordset basierend auf dem Ändern von Parameterwerten.
Aktualisieren des Recordset-Objekts
Häufig möchten Sie das Recordset-Objekt erneut abfragen, um es auf dem neuesten Stand zu bringen. In einer Mehrbenutzerdatenbankumgebung können andere Benutzer während der Lebensdauer des Recordsets Änderungen an den Daten vornehmen. Weitere Informationen dazu, wann Ihr Recordset Änderungen an anderen Benutzern widerspiegelt und wann die Recordsets anderer Benutzer Ihre Änderungen widerspiegeln, finden Sie unter Recordset: How Recordsets Update Records (ODBC) und Dynaset.
Erneutes Abfragen basierend auf neuen Parametern
Eine weitere häufige – und gleichermaßen wichtige – Verwendung von Requery besteht darin, eine neue Gruppe von Datensätzen basierend auf dem Ändern von Parameterwerten auszuwählen.
Tipp
Die Abfragegeschwindigkeit ist wahrscheinlich wesentlich schneller, wenn Sie Requery
parameterwerte ändern, als wenn Sie erneut aufrufen Open
.
Requerying Dynasets vs. Snapshots
Da Dynasets eine Reihe von Datensätzen mit dynamischen aktuellen Daten darstellen sollen, möchten Sie Dynasets häufig erneut abfragen, wenn Sie die Ergänzungen anderer Benutzer widerspiegeln möchten. Momentaufnahmen sind dagegen nützlich, da Sie sicher auf deren statische Inhalte vertrauen können, während Sie Berichte vorbereiten, Summen berechnen usw. Dennoch möchten Sie manchmal auch eine Momentaufnahme erneut abfragen. In einer Mehrbenutzerumgebung verlieren Momentaufnahmen möglicherweise die Synchronisierung mit der Datenquelle, wenn andere Benutzer die Datenbank ändern.
So abfragen Sie ein Recordset-Objekt erneut
- Rufen Sie die Requery-Memberfunktion des Objekts auf.
Alternativ können Sie das ursprüngliche Recordset schließen und erneut öffnen. In beiden Fällen stellt das neue Recordset den aktuellen Zustand der Datenquelle dar.
Ein Beispiel finden Sie unter "Datensatzansichten: Ausfüllen eines Listenfelds aus einem zweiten Recordset".
Tipp
Um die Leistung zu optimierenRequery
, vermeiden Sie, den Filter oder die Sortierung des Recordsets zu ändern. Ändern Sie nur den Parameterwert vor dem Aufrufen Requery
.
Wenn der Requery
Anruf fehlschlägt, können Sie den Anruf wiederholen. Andernfalls sollte Die Anwendung ordnungsgemäß beendet werden. Ein Anruf an Requery
oder Open
schlägt aus einer Reihe von Gründen fehl. Möglicherweise tritt ein Netzwerkfehler auf; oder während des Anrufs, nachdem die vorhandenen Daten freigegeben wurden, aber bevor die neuen Daten abgerufen werden, erhält ein anderer Benutzer möglicherweise exklusiven Zugriff; oder die Tabelle, von der ihr Recordset abhängt, könnte gelöscht werden.
Siehe auch
Recordset (ODBC)
Recordset: Dynamisches Binden von Datenspalten (ODBC)
Recordset: Erstellen und Schließen von Recordsets (ODBC)