|
Un error de Access Violation se produce (generalmente) cuando se está accesando a una posición de memoria no asignada o inicializada... Si la dirección que te retorna el error es algo como #FFFFFFF o #0000000 (no recuerdo cual de las dos) el error indica que estas accesando a un objeto que aun no está instanciado....
Por otro lado, si la dirección de memoria tiene un valor diferente, es muy probable que por error de codigo se esté accesando a una sección de memoria de otro objeto... suele suceder con arrays dinámicos cuyo subindice esta fuera de rango...
Ahora, como dice caral, sería bueno que hicieras un seguimiento paso a paso para identificar exactamente cual es la linea que te genera el error, para tener mas pistas.
Muy probablemente el segundo error sea fruto del segundo, para ello te recomiendo "proteger" el codigo con TRy..Except.... por ejemplo antes de hacer el ExecSQL, asi:
Try
ExecSQL;
Except
On E: TException do
ShowMessage('Error de ejecución: '+E.message);
end;
Suerte.
|