Today I had the same issue, 'Dataset is read-only'. Took a little while. On the TSQLQuery in use, property SQL, (TStringList), I had a SELECT * statement for MYSQL and just above it had a short comment: '#Comment'. Turns out, when I substituted /*Comment*/ and dropped use of the '#', the issue of 'Dataset is read-only' disappeared. Cheers!