try as I might I can't get the modal form to rollback, I've tried allsorts, even using zeos db components, but as soon as a component looses focus, it looks as its changing the dataset immediately and the rollback is a noop
I might even try a separate transaction / query for the modal form, or I might just end up filling in values from the current record when the modal form first shows, and use a separate query to post the data....
I don't remember any issues doing this with Delphi, but mind that was nearly two decades ago so I might be misremembering...!