PDA

Ver la Versión Completa : Duda: EOSError (error code: 5)


xEsk
21-01-2007, 18:17:58
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 :p

Aqui teneis el error exacto que me suelta el Delphi (siempre en el mismo "proceso", pero no se en que momento de el :confused:):

---------------------------
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

seoane
21-01-2007, 18:52:23
:confused: ¿Estas utilizando algún método para sincronizar ambos threads? ¿Synchronize? ¿TCriticalSection? ¿Mutex? etc ...

xEsk
21-01-2007, 19:01:53
Solo en los momentos que tengo q actualizar objetos graficos uso el Synchronize.

Ara estoy revisando que no se me haya colado alguno por ahi, pero cuando me lo dejo me suelta que no puede "dibujar", asi es como detecto algunos de estos que me dejo... Es algo chapuzero hacerlo asi, pero.... xD

Ahora haciendo pruebas he localizado el punto (el trozo de codigo que me genera el error)... ya estoy mas cerca de corregirlo, espero.

Gracias por la sugerencia!

P.D.: Voy a buscar informacion acerca de: TCriticalSection

scooterjgm
18-05-2007, 14:15:51
Tengo el mismo problema....

Si utilizas DevExpress ExpressQuantumGrid, el error proviene de un bug de dicho componente.



EOSError-System Error. Code: 5 [DevExpress+BDE]
Date: Fri, 17 Oct 2003 09:40:55 +1000

"Delphi Guru" <DelphiGuru@yahoo.com> wrote in message
news:3f8eb5a2@newsgroups.borland.com...
> > Is your app using DevExpress ExpressQuantumGrid by any chance?
>
> Yes , i'm using DevExpress Grid 4.5 ( with BDE-DBF7 )
>
> Is a DexExpress Bug ?


Well, I can't say for your specific case, but it was for me :-)
All by DB apps are heavy consumers of the ExpressQuantumGrid, and whenever I
used the [Windows] + L to lock my WinXP machine, my app would come back with
the error you reported.
I contacted DevExpress support, and they confirmed it to be a bug and
provided a fix. I suggest you shoot them a quick email.

MR.


Más información en el siguiente enlace.

http://coding.derkeiler.com/Archive/Delphi/borland.public.delphi.non-technical/2003-10/4213.html