![]() |
Datenbank: Firebird • Version: 2.5 • Zugriff über: Interbase
Dataset neu laden
Hallo zusammen,
leider habe ich nochmal ein kleines Problemchen. Und zwar habe ich ein DbGrid1 welches von einem Dataset1 gefüllt wird. Diese Daten, auf die Dataset1 zugreift, werden zwischenzeitlich jedoch von einem anderen Dataset "Dataset2" geändert oder neue hinzugefügt oder sonst was. Später soll Dataset1 dann wieder neu geladen werden, um die Änderungen von Dataset2 anzuzeigen. Dies habe ich schon mit DbGrid1.Refresh und Dataset1.Refresh probiert, jedoch werden die Änderungen aus Dataset2 in Dataset1 nicht angtezeigt. Die Daten werden erst angezeigt wenn ich das Dataset1 nochmal schließe und neu öffne. Dann sind jedoch wieder alle Einstellungen des DbGrid weg. Gibt es hierzu eine elegantere Lösung? Vielen Dank für die Hilfe |
AW: Dataset neu laden
Hängen die Datasets evtl. an verschiedenen Transaktionen?
|
AW: Dataset neu laden
nee eigentlich hängen die an garkeinen
|
AW: Dataset neu laden
In Firebird hängen diese immmer an einer Transaktion; im Zweifel an einer automatisch erzeugten.
|
AW: Dataset neu laden
Zitat:
Delphi-Quellcode:
// workaround
var primarykey : string; begin primarykey := dataset1['IdKey']; dataset1.close; dataset1.open; dataset1.Locate('IdKey', primarykey, []); |
AW: Dataset neu laden
So weit ich mich erinnern kann, ist dieses Verhalten für IBX ganz normal. Die Refresh-Methode in IBX aktualisiert nur den aktuell positionierten Datensatz, d.h. ein Close/Open ist notwendig, wenn man auch andere Änderungen sehen möchte. Dazu ist aber noch zu sagen, dass der Transaktions-Isolation-Level und AutoCommit auch eine Rolle spielt. Eine laufende SNAPSHOT Transaktion wird nie die Änderungen anderer Transaktionen sehen können.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz