AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi FireDac ODBC Query bringt alte Daten

FireDac ODBC Query bringt alte Daten

Ein Thema von fisipjm · begonnen am 24. Aug 2022 · letzter Beitrag vom 31. Aug 2022
 
fisipjm

Registriert seit: 28. Okt 2013
333 Beiträge
 
Delphi 12 Athens
 
#9

AW: FireDac ODBC Query bringt alte Daten

  Alt 26. Aug 2022, 11:05
Wann endet ein Transaktion bei Firedac (Firebird?) Ich mache ja breits ein Open/Edit/Post/Close und bei der anderen Query ebenfalls ein Open/Close.
Bei Firebird müssen Transaktionen explizit committed werden. Wird einfach die Verbindung geschlossen (Programm beenden), hängt es von den Datenbankkomponenten ab, ob das ein Commit oder Rollback wird.
Erst in Firebird 4 gibt es auch von der Datenbankseite die Möglichkeit, AutoCommit zu konfigurieren.

AutoCommit wäre in diesem Fall aber auch falsch. Was ist denn, wenn zwischen "HolDieNummer" und "SetzDieNummer" jemand anders die Nummer erhöht? Da müsste "SetzDieNummer" als 3. Parameter den vorherigen Wert der Nummer abfragen. Also nur erhöhen, wenn zwischendurch niemand anders erhöht hat.

P.S.: warum nicht alles in einem Rutsch?
Code:
UPDATE nummernkreise SET zaehler = zaehler + 1
WHERE Spalte1 = :Kriterium1 and Spalte2 = :Kriterium2
RETURNING OLD.zaehler
(vorausgesetzt, das geht mit ODBC)
Gute Punkte. Zum Thema wenn jemand dazwischend eine Nummer holt. Ja, in der Theorie möglich, in der Praxis spielt sich die Abarbeitung im Millisekunden Bereich ab.
Gute Idee mit der Update und Retruning methode, allerdings muss ich die Nummer noch in eine andere Tabelle schreiben und darf die Nummer in den Nummernkreisen erst updaten wenn das Schreiben auch tatsächlich funktioniert hat.

Was ich nicht verstehe ist, ein Commit betrifft doch normal nur das Updaten. Das Updaten funktioniert aber, alleine die Select abfrage zum abrufen holt den alten wert. Der neue Wert steht zu dem Zeitpunkt aber definitiv schon der Datenbank. Ich glaube also nicht das es an dem Commit liegt.
  Mit Zitat antworten Zitat
 

 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:04 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