Собственно как это делают люди?
Речь, конечно, не про выполнение скрипта "update table set...", а про использование Edit/Post с изменением как в Датасете, так и в БД.
Какие нужны настройки, в частности у TFDQuery.
// настройки qr.UpdateOptions = [KeyFields = id][UpdateChangedFields = true]
// при этом селект не смотрит напрямую в theTable, но id - это поле theTable
qr2.UpdateOptions.UpdateTableName := 'theTable';
qr2.Edit;
qr2.FieldByName('Str').Value := Format('%s-%d',[qr2.FieldByName('Str').AsString, Code]);
qr2.Post;
В такой форме позволяет менять датасет, но в БД данные не скидываются. БД SQLite.