In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Cerrar las dbf

Foro público de Xailer en español
Responder
fredy[1]
Mensajes: 218
Registrado: Mar Mar 08, 2005 2:03 am

Cerrar las dbf

Mensaje por fredy[1] »

Hola,
Me he dado cuenta de un detalle en el que hasta ahora no habí­a caí­do y que
no sé si se ha tratado ya por aquí­.
Al crear los DataSet con lNew:= .t., cada vez que entramos en un formulario,
las dbf se abren lógicamente un un área nueva.
El detalle es que al cerrar el formulario no se cierran las dbf y cuando
reabro el formulario, se vuelve a abrir la dbf en otro área.
En cambio el dataset creo que sí­ que de destruye ¿verdad?
Así­, si entro en el mantenimento de zonas 20 veces, tengo zonas.dbf abierto
en 20 áreas diferentes.
Para cerrar la dbf se tiene que hacer en el evento OnDestroy con ::Dataset:Close()
Si se hace en el evento OnClose da un error. Creo que es porque al realizar
el OnClose ya se ha destruido el Dataset ¿es así­?
Un saludico,
Fredy
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9447
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Cerrar las dbf

Mensaje por ignacio »

Fredy,
¿Estas seguro?
Acabo de comprobar que el evento OnPostClose se dispara perfectamente cuando
cierre el formulario que contiene el DataSet. No será que el formulario tien
un lHideOnClose a VERDADERO y entonces no se destruye realmente.
Por favor mandame un ejemplo que muestre el problema.
Gracias.
"Fredy" <fredy@airtel.net> escribió en el mensaje
news:[email=a20b86f3fa18c765b64ab26ea8@news.xailer.com...]a20b86f3fa18c765b64ab26ea8@news.xailer.com...[/email]
> Hola,
>
> Me he dado cuenta de un detalle en el que hasta ahora no había caído y que
> no sé si se ha tratado ya por aquí.
> Al crear los DataSet con lNew:= .t., cada vez que entramos en un
> formulario, las dbf se abren lógicamente un un área nueva.
> El detalle es que al cerrar el formulario no se cierran las dbf y cuando
> reabro el formulario, se vuelve a abrir la dbf en otro área.
> En cambio el dataset creo que sí que de destruye ¿verdad?
> Así, si entro en el mantenimento de zonas 20 veces, tengo zonas.dbf
> abierto en 20 áreas diferentes.
>
> Para cerrar la dbf se tiene que hacer en el evento OnDestroy con
> ::Dataset:Close()
>
> Si se hace en el evento OnClose da un error. Creo que es porque al
> realizar el OnClose ya se ha destruido el Dataset ¿es así?
>
> Un saludico,
> Fredy
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
fredy[1]
Mensajes: 218
Registrado: Mar Mar 08, 2005 2:03 am

Cerrar las dbf

Mensaje por fredy[1] »

Hola,
Te mando un pequeño ejemplo.
A mí­ no se me dispara solo el OmPostClose, como verás, tengo que ponerle el Close() en el FormDestroy, si no, cada vez que entro al formulario tengo un nuevo área abierta.
En el caso de que se dispare solo el OnPostClose al cerrar el formulario ¿Serí­a necesario poner un oSender:Close() dentro para que se cierre la dbf, o lo hace él solo?
Un saludico,
Fredy
--

Attached files MAIN.zip (2.7 KB)Â
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9447
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Cerrar las dbf

Mensaje por ignacio »

Fredy,
Tienes toda la razón. A mi se me ejecutaba porque al cerrar el formulario
también se salía de la aplicación y en dicho momento también se cierran los
datasets.
Ya lo tengo arreglado. Si puedes sobrevivir con este bug te lo agradezco
sino tendría que mandarte unas cuantas clases modificadas. Tu me dirás.
Un saludo,
"fredy" <fredy@airtel.net> escribió en el mensaje
news:[email=a20b86f40898c7663df0ca9cd4@news.xailer.com...]a20b86f40898c7663df0ca9cd4@news.xailer.com...[/email]
Hola,
Te mando un pequeño ejemplo.
A mí no se me dispara solo el OmPostClose, como verás, tengo que ponerle el
Close() en el FormDestroy, si no, cada vez que entro al formulario tengo un
nuevo área abierta.
En el caso de que se dispare solo el OnPostClose al cerrar el formulario
¿Sería necesario poner un oSender:Close() dentro para que se cierre la dbf,
o lo hace él solo?
Un saludico,
Fredy
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
fredy[1]
Mensajes: 218
Registrado: Mar Mar 08, 2005 2:03 am

Cerrar las dbf

Mensaje por fredy[1] »

Hola,
No te preocupes, que me apaño poní­endolo en el onDestroy
Un saludico,
Fredy
Responder