Status steht auf Browse, nicht auf dsEdit oder dsInsert ... OldValue und NewValue können somit garnicht unterschiedlich sein.
Nja,
es liegt ja eh am UpdatesPending=True.
Du hast also "wartende" Änderungen? Und somit stimmt des True.

Frag mich aber nicht, wie man ins ÄnderungsLog, bzw. in die Änderungsliste (wartende Update) reinschaut. Keine Ahnung.
qry_.UpdatesPending kann eigentlich nur True sein, wenn qry_.CachedUpdates es auch ist, womit man die eine Prüfung weglassen können dürfte.
if qry_.State in [dsEdit, dsInsert] then begin
Delphi-Quellcode:
Result := ( qry.Active and qry_.CanModify )
and ( (qry_.State in [dsEdit, dsInsert]) or qry_.UpdatesPending );
Ein Therapeut entspricht 1024 Gigapeut.