After reading a lot of this, I see that first, UniDac seems to have changed its behavior over their versions. Our tests running an old version behaves differently then newer ones.
Second, the specific combination of UniDac + Interbase/Firedac also behaves differently from the other databases. UniDac always open a transaction for IB/FB, thus it will be up to your application to know that and do the proper handling of that.
In your specific application, indeed, you will have to commit the transaction. Alternatively, you could enclose any operation performed in DB in transactions, this way you will have more control. For example, the following code solves the issue in your sample app:
Trans := FConnection.BeginTransaction;
TDatabaseManager.Update(FConnection);
Trans.Commit;
Wagner R. Landgraf2019-01-16 12:15:20