Zuerst: Weder mit FireBird noch mit
ODBC noch mit einer Kombination aus beidem (und dabei war/ist es egal, welche Datenbankkomponenten ich seitens Delphi verwende), hatte ich bisher Probleme. Es liegt für meine Begriffe grundsätzlich weder an dem einen, noch an dem anderen, allenfalls an der Art der Verwendung. Und die ist hier nicht näher beschrieben, so dass es unmöglich ist zu erkennen, wo das Problem liegen könnte.
Man muss bei der Konfiguration schon darauf achten, dass man nicht nur Lese- sondern auch Schreibrechte hat.
Die Edit-/Post-Variante ist die eher fehleranfällige. Letztlich muss auch bei deren Verwendung "irgendwo in der Datenbankschnittstelle" ein entsprechendes Update-Statement generiert werden, welches dann an die Datenbank geschickt und dort verarbeitet wird.
Hab' in einem meiner Programme auch so 'ne Schleife mit Edit+Post. Und wenn ich in der Monitoringtabelle von FireBird nachschaue, was da so passiert, sehe ich ein Select und eine ganze Reihe von Update-Statements.
Eine eher blöde Idee:
Dein Select und Edit/Post funktioniert beim ersten Mal (was Du an den geänderten Daten in der
DB sehen kannst), aber in der weiteren Verarbeitung erkennt "irgendwerwieoderwas" in der Kommunikation zwischen Deinem Programm und der Datenbank, dass der Satz geändert wurde und weiß nicht, dass der Satz gerade von "irgendwerwieoderwas" geändert wurde und bemängelt die eigene Änderung als nicht erfolgreich. Wäre eher schräg, aber ist eventuell nicht auszuschließen.
Auch wenn Select + Update etwas aufwändiger zu programmieren ist, als Edit + Post, könnte das zusammen mit 'ner vernünftigen Transaktionsklammer durchaus die sinnvollere Alternative sein. Eventuell funktuionieren aber auch Edit + Post, wenn da 'ne Transaktionsklammer drum ist. Ohne sinnvolles Transaktionshandling ist das sowieso eher so 'ner Art Lottospiel.
Dann schau bitte mal hier, ab Du das eventuell was brauchbares findest:
https://stackoverflow.com/questions/...ving-strangely