Tengo una duda acerca de ese error: EOSError (5: access denied) al llamar alguna funcion de la API.
Mi duda, es si el acceso denegado se refiere a un fichero, a una dll, a un exe, a una direccion de memoria, o puede ser cualquiera de estas! Para tener una idea de cual puede ser el error, ya q el Delphi no me ayuda mucho
Aqui teneis el error exacto que me suelta el Delphi (siempre en el mismo "proceso", pero no se en que momento de el
):
---------------------------
Debugger Exception Notification
---------------------------
Project xDemo.exe raised exception class EOSError with message 'System Error. Code: 5.
Acceso denegado'.
---------------------------
Break Continue Help
---------------------------
El programa usa el firebird 2.0 (embedded) y es multi-hilo.
Mi primera sospecha era si el error lo daba el firebird al intentar escribir, pero he descartado esta opcion, pq los datos se guardan correctamente (aun y haber saltado el Error).
Mi segunda sospecha es, si es un "acceso denegado" a la memoria. ¿Pq pienso eso? Pues pq el programa tiene unos cuantos hilos en funcionamiento q se llaman unos a otros y q alguno de estos intente leer datos reservados del otro.
Pongamos que:
Hilo 1 = programa principal
Hilo 2 = objeto que guarda datos a la BD
Pues
Hilo 2 hace saltar un evento del
Hilo 1, y este usa sus variables y sus cositas, el 95% de las veces funciona bien, pero no se por que motivo algunas veces salta ese error. Despues de saltar el error, esta claro que el
Hilo 2 (que fue quien llamo al evento del
Hilo 1) se queda "colgado" debido al error.
Se que es un poco liada mi explicacion, si no se entiende lo intentare explicar otra vez... xD