Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.442 Beiträge
 
Delphi 12 Athens
 
#2

AW: Legacy-Anwendung TTable->TFDTable LockTable

  Alt 18. Mär 2022, 10:18
In dem alten Code sind solche Sachen drin, wie TabelleXYZ.LockTable(ltWriteLock) bzw. UnLockTable(). Dies Locks sind in der alten Unit DBTables drin.
Aber die gibt es ja nicht mehr. FireDAC hat da scheinbar nix Passendes,
Nein, Locking geht einfach nicht mehr. FireDAC geht da einen anderen Ansatz, so nach dem Motto: Mach erst mal und reagiere, wenn es nicht klappt.

Wenn ein geänderter Datensatz gespeichert wird, kann man über UpdateMode entscheiden, welche Felder in der WHERE Klausel angegeben werden. Bei upWhereAll werden alle abgerufenen Felder eingesetzt. Damit kann man sicherstellen, dass zwischenzeitlich keines der Felder verändert wurde. Bei upWhereChanged sind das nur die Felder, die man selbst verändert hat. Das lässt sich noch über die ProviderFlags in jedem einzelnen Feld feintunen.

Schlagt nun ein solches Update fehl, weil z.B. ein Feld von anderer Stelle verändert wurde, kann man im OnReconcileError der Query entsprechend darauf reagieren.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat