Página 1 de 1

Cerrar las dbf

Publicado: Mar Ago 02, 2005 8:17 pm
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

Cerrar las dbf

Publicado: Mié Ago 03, 2005 9:45 am
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
>
>

Cerrar las dbf

Publicado: Mié Ago 03, 2005 12:28 pm
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)Â

Cerrar las dbf

Publicado: Mié Ago 03, 2005 7:41 pm
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

Cerrar las dbf

Publicado: Vie Ago 05, 2005 12:09 pm
por fredy[1]
Hola,
No te preocupes, que me apaño poní­endolo en el onDestroy
Un saludico,
Fredy