Migrating from BDE to FireDac: Strange FireDac behaviour with Interbase and automatic transactions

125 Views Asked by At

The isolated representation of the behavior is as follows: I have created a project with Delphi 11.3 and use FireDac components to access an Interbase database. All settings except the connection definition are default. A Select query is opened to query more than 500 records. The data is displayed in a grid and users can move through the data sets. This starts a transaction and keeps it open until the end of the data set is scrolled (or not). If an update is now carried out with a second update query, this does not trigger an automatic transaction (StartTransaction and then Commit) if the one from before is still open, and depending on this the change is visible to others or not. This behavior was different when using the BDE components and we could rely on automatic transactions in a large legacy application. Interestingly, the behavior compared to BDE has not changed when using Oracle as a database and our application works as expected. So if a transaction is autocommited or not depends on the grid having been scrolled to the end. That makes automatic transactions useless. What can I do to influence this behavior centrally without having to process hundreds of queries?

I examined the configuration options of the FDConnection component (AutoStart, AutoCommit...), but found no way to adjust the behavior as desired.

0

There are 0 best solutions below