![]() |
Datenbank: Firebird • Version: 5 • Zugriff über: FireDAC
Verzögerte Aktualisierung der DB Daten
Hallo,
in meiner Anwendung habe ich inzwischen folgendes Problem: Ich erzeuge einen Beleg, danach rufe ich die Belegliste auf und der Beleg ist dort noch nicht sichtbar. Rufe ich diese Liste wenig später erneut auf, ist er da. Die Belegerzeugung nutzt eigentlich (ich prüfe das nochmal im Detail aber ein kurzes Code-Review ergab nichts verdächtiges) eine Transaktion die im Erfolgsfall commitet wird und die Anzeige der Belege erfolgt erst danach. Frage also: gibt es noch irgendwelche anderen möglichen Ursachen für diese Verzögerungen? Die DB läuft lokal, ist nicht so riesig und die benutzten SQL Befehle führen auch nicht gerade zu einer hohen Last. Transaktionsisolation in der FDConnection ist ixUnspecified. Im Firebird hab' ich aber nix an der Konfiguration geändert. |
AW: Verzögerte Aktualisierung der DB Daten
Ohne die genaue Konfiguration zu kennen, ist das nicht einfach.
Ich würde zum Testen erstmal prüfen, ob die Transaktion noch aktiv ist, bevor man die Aktualisierung der Belege startet (InTransaction glaube ich). Sollte das nicht der Fehler sein, Solltest du die DB mit einem passenden DB-Monitor überwachen, um der Ursache auf den Grund zu gehen. Wenn Die Transaktion so lange braucht, solltest du dir natürlich auch ansehen, warum da so ist. Dafür könntest du den passenden SQL-Befehl direkt auf der DB ausführen, bzw. mal analysieren lassen. Je nach DB findest du das meines Wissens unter Explain Plan oder Analyze. |
AW: Verzögerte Aktualisierung der DB Daten
Kann es sein, dass die Belegliste ihre Daten schon abgerufen hat, wenn du den Beleg erzeugst + er deshalb nicht drin ist?
|
AW: Verzögerte Aktualisierung der DB Daten
Ich würde auch vermuten, dass die DB-Prozedur asynchron ausgeführt wird und dein Programm einfach schneller ist.
|
AW: Verzögerte Aktualisierung der DB Daten
Zitat:
|
AW: Verzögerte Aktualisierung der DB Daten
Hallo,
danke für alle Ideen. Mein urspüngliches Problem warum ich gefragt hatte kontne ich gestern erst mal nicht mehr nachstellen. Bei dem Problem warum ich an der Stelle im Programm gearbeitet hatte ist mir die Ursache jetzt auch klar, da kann ich jetzt denke ich eine passende Lösung bauen. Ursache liegt an meiner Logik und nicht an Delphi. |
| Alle Zeitangaben in WEZ +1. Es ist jetzt 20:22 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-2025 by Thomas Breitkreuz