Hallo,
ich habe eine Firebird 5.0 Datenbank die mittels Delphi 12.1 FireDAC angesprochen
wird. Ich habe nur eine Connection dort hin und noch eine weitere von einem
DB
Verwaltungstool "
SQL Manager Lite".
In einem Ablauf soll ein gewisser Select (left join) die Summe aller Beträge
aller Zeilen die eine bestimmte numerische Transaktionsnummer haben, die eben
erst den betreffenden Einträgen zugewiesen wurde (vorhger war diese Null).
Im aktuellen Beispielfall gibt es genau 2 Datensätze die da zu summieren sind.
Nur liefert der Select im Programm nur den einen Fall (der select hat in der
Where Bedingung eine Prüfung auf diese spezifische transaktionsnummer), also
eine zu niedrige Summe.
Führe ich den selben select paralell im
DB Tool aus liefert er kein Ergebnis bzw.
wenn ich in der Where Bedingung die Prüfung auf die Transaktionsnummer durch
"is Null" ersetze liefert er das gewünschte Ergebnis.
1. Bevor ich diese Transaktionsnummer in alle Tabellen schreibe Starte ich eine Transaktion.
2. Ich habe auch schon versucht vor dem Starten der Transaktion
FSQLConnection.TxOptions.Isolation := xiDirtyRead; zu setzen.
3. Ich habe auch schon versucht vor der
SQL Abfrage CommitRetaining; aufzurufen.
Leider alles bisher ohne Erfolg.
Hat noch jemand eine Idee?