O halde
http://docwiki.embarcadero.com/RADStudio..._(FireDAC) sayfasında belirtilenler olmalı:
A: This error is often raised when FireDAC includes some float / double / single / date / datetime / time or some other table fields, which are subject to precision loss in the WHERE phrase. When an application assigns values to parameters, the precision loss may happen. As result of that, the WHERE phrase returns no records.
FireDAC may include such fields into WHERE depending on UpdateOptions.UpdateMode. Sometimes you can see this error with upWhereKeyOnly. Although you have specified upWhereKeyOnly, FireDAC may still use upWhereAll. This happens when there is no PK field defined. No PK fields may be defined when:
fiMeta is excluded from FetchOptions.Items;
or a table in SQL does not have primary key defined;
or UpdateOptions.KeyFields is empty;
or none of TField's has pfInKey in ProviderFlags.
Another reason with some DBMSs (SQL Server, PostgreSQL) is that the table has a trigger which modifies the data. With SQL Server put SET NOCOUNT ON at trigger beginning. With PostgreSQL set UpdateOptions.CountUpdatedRecords to False.