Hola
No creo que el problema expuesto sea de SQL. Un EAccessViolation ocurre normalmente por tratar de acceder a una instancia de un objeto que ya ha sido destruido, o que aún no ha sido creado. Por la dirección que apunta el Read of address 00000000, me atrevería a asegurar que estas tratando de usar un método o una propiedad de un objeto que apunta a
nil.
Te recomiendo seguir paso a paso la ejecución de tu programa para determinar donde ocurre el fallo.
Por otro lado, te recomiendo el uso de las etiquetas [delphi], [sql] o [code] para publicar trozos de código. Hay un mensaje al inicio de cada foro que explica su uso, y un vínculo en mi firma a la ayuda de la etiqueta code.
Dado que el tema no va por SQL, muevo este hilo al foro de varios.
Hasta luego.