Die Problematik scheint ja vielleicht in der instabilen Connection zu liegen und dann ist das was 100x funktioniert eben nicht in jedem Fall geeignet.
Dank Outsourcing hat man ja heute wohl häufiger mit entfernten
DB zu tun, die über VPN Tunnel o.ä. angesprochen werden. Hier geht es dann los mit Latenzen und der "kleinteiligen" Kommunikation, die offenbar eher für's LAN gemacht/geeignet ist.
Delphi.Narium hat ja schon ähnliche Fragen in den Code kommentiert. Ich bin lange nicht mehr auf dem aktuellen Stand bei Delphi, aber würde bspw. unter den genannten Umständen auch die verlässliche Funktion eines Dataset.edit in Frage stellen. Das bräuchte dann u.U. auch schon ein
Exception Handling, ich vermute zumindest, dass dahinter die Datenbanksperren geregelt werden.
Unabhängig von der Stabilität der Verbindung oder möglichen anderen Problemen, scheint mir das Ignorieren der Locate Rückgabe suboptimal zu sein.
Und wenn aus dem Update (Edit) ein Insert wird, weil gar nichts da ist, muss das ja auch noch lange nicht funktionieren, wenn die restlichen Felder (hier sind es ja nur 2 Nutzdaten) nicht den
DB Regeln entsprechen. Dann scheitert es mindestens an der Relationslogik oder aber an
DB Constraints (sofern vorhanden).