Hi, I was having some of these issues. Does your query property - options have any of those settings active, i.e. AutoApplyUpdates, AutoCommit set. I found awhile back to make sure all of the Query options aren't set from the beginning, then on saving: POST, APPYUPDATES, TRANSACTION.COMMIT, Qry.Close, Qry.Open. Also, Disabling and Enabling controls, I only use those commands when batch updating or retrieving values from one table into another, i.e. in my Appointments unit/form looking up the contact for the appointment, I QryAppts.DisableControls then try... pulling the field values from contacts, i.e. Email, Cell Phone, Address, etc. and then finally QryAppts.EnableControls.
Here awhile back, I'm in a learning phase all the time in Lazarus. So, learn from folks here on the forum. But, was getting access type errors that didn't make sense esp. if I had autocommit active in the options. I just disable any options from the get go, then do my own thing. But, something that I don't understand, anytime testing/running within Lazarus, I get access errors on exiting the application I'm testing. But, it I run the executible outside of Laz, I don't get this error???
I'll stay in tune to see what you discover...