Ako sa to ošetruje v kóde?
Tak, ze pri vyskytu vyjimky druhu
ekRecordLocked zobrazis uzivateli hlasku aby akci pozdeji opakoval pripadne kontaktoval administratora

Napr. (
psano v browseru, dovolena):
FDTransaction1.StartTransaction;
try
FDQuery1.ExecSQL;
FDTransaction1.Commit;
except
on E: EFDDBEngineException do
begin
FDTransaction1.Rollback;
if E.Kind = ekRecordLocked then
ShowMessage('Record is locked by another active transaction. Please, try again later or contact administrator.');
raise;
end;
end;
Ty mas jen jednoho uzivatele, a pokud bys chtel jednat, musel bys nejakou mocnou silou ustrelit na serveru aktivni transakci jenz ma na zaznamu zamek (misto zobrazeni hlasky).
Nejde mi o vyriešenie príčiny. To sommal ihneď. Zle zostavené SQL.
Ale zbaviť sa toho stavu. Druhá vec je, či sa mi to môže stať v aplikácii. Ak áno, tak ako to riešiť.
V jednom prípade som tým mal veľký problém.
Stat by se to s jednou bezici instanci aplikace, resp. s 1 connection session v ramci aplikace nemelo (tedy pokud ridi transakce implicitne FireDAC, nebo jsou korektne rizeny Tebou).