Ciao Easy,
in effetti come segnala Fabio, le ipotesi possono essere molte sulla causa.
Se esegui una query in chiusura e la transazione si incastra non mi sembra una cosa molto strana.
Hai provato a non chiudere la transazione prima che venga eseguita la query?
In effetti l'errore potrebbe essere una stringa messa dentro il componente transazione, non un errore si MySql ...
Procedure TDBTransaction.CheckInActive;
begin
If FActive Then
DatabaseError(STransActive,Self);
end;
Questa è la riga che scatena l'eccezione.
Il controllo sulla transazione viene fatto parecchie volte ...
Magari è proprio la query in chiusura che ti fa saltare il banco :D