UpdatesPending ist doch für alle Datensätze außer dem aktuellen, falls er gerade editiert wird, ausreichend:
Delphi-Quellcode:
function HasSomethingChanged(ADataSet: TBDEDataSet): Boolean;
begin
Result := ADataSet.UpdatesPending;
if not Result and (ADataSet.State in [dsEdit, dsInsert]) then begin
ADataSet.UpdateRecord;
Result := ADataSet.Modified;
end;
end;