@BUG
Es gibt Stammdaten (Alice, Bob), Bewegungsdaten (5 Punkte von Alice nach Bob, 20 Punkte an Bob) und dann die kumulierten Daten (Saldo für Alice, Bob).
Die Stammdaten und Bewegungsdaten werden zwischen den Systemen ausgetauscht. Die kumulierten Werte bildet jedes System selber.
Nur so zum Verständnis, ein Update sieht dann z.B. so aus
Delphi-Quellcode:
Query.SQL.Text := '
UPDATE person SET version = version+1, deleted = :deleted, name = :name WHERE id=:id AND version = :version';
Query.ParamByName('
id').Value := aPerson.Id;
Query.ParamByName('
version').Value := aPerson.Version;
Query.ParamByName('
deleted').Value := aPerson.Deleted;
Query.ParamByName('
name').Value := aPerson.
Name;
Query.ExecSQL;
if Query.RowsAffected = 0
then
raise EConcurrencyException.Create('
Datensatz wurde schon vorher geändert');
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)