How do I get round the read-only/not in edit mode issue?
I'm doing all this in code, so I set ReadOnly = False on the Query and the DataSet to Edit, but I still get an error: "DataSet is read-only"
Why would you want to change a calculated field? It's calculated so it's read only by nature.
In TSQLQuery.OnCalcFields you can set the value with FieldByName('calc').asSomething := abc; to fill the value.
But you shouldn't send this to the server.
So where are you having trouble with a read-only field?
(otherwise show us a simple example)