Eso significa que una de las tablas que modificaste no soporta transacciones.
http://dev.mysql.com/doc/mysql/en/no...al-tables.html
Por otro lado, en tu código vi esto:
Código Delphi
[-]
dm.ADOCon.BeginTrans;
try
...
except
dm.ADOCon.RollbackTrans;
showmessage('El prestamo no pudo procesarse...!');
end;
dm.ADOCon.CommitTrans;
Si se produce un error dentro del try..except, el error será capturado por el except, se ejecutará el código dentro de este y la próxima línea a ejecutarse es el CommitTrans, lo que producirá un nuevo error. Los dos métodos mas vistos son: poner el CommitTrans antes del Except o en lugar de hacer un ShowMessage hacer un raise después del RollBack.
Saludos!