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.

tDatasource y el mensaje: files not closed correctly

Foro de Xailer profesional en español
jose.luis
Posts: 1633
Joined: Fri Oct 14, 2005 10:56 pm

tDatasource y el mensaje: files not closed correctly

Postby jose.luis » Thu Jan 31, 2008 12:53 pm

Hola,
En mi aplicación estoy usando CdxDatasources/Datasets.
A lo largo de la aplicación voy a abriendo diferentes Datasets y
cerrándolos.
Es posible que alguna tabla abierta con Dataset no pertenezca a ningún
formulario.
Al cerrar la aplicación Xailer me informa que tengo dos tablas no cerradas
correctamente.
En ese punto coloco un ALTD() y verifico las areas abiertas: ninguna.
El caso es que NO se como evitar esos mensajes. Tampoco esos mensajes me
informan ni de cual dataset ni de cual tabla está abierta.
Saludos,
José Luis Capel
jrcpoli-quitar
Posts: 558
Joined: Tue Feb 09, 2010 2:26 pm

tDatasource y el mensaje: files not closed correctly

Postby jrcpoli-quitar » Thu Jan 31, 2008 1:00 pm

José Luis Capel - Aicom escribió:
> Hola,
>
> En mi aplicación estoy usando CdxDatasources/Datasets.
>
> A lo largo de la aplicación voy a abriendo diferentes Datasets y
> cerrándolos.
>
> Es posible que alguna tabla abierta con Dataset no pertenezca a ningún
> formulario.
>
> Al cerrar la aplicación Xailer me informa que tengo dos tablas no cerradas
> correctamente.
>
> En ese punto coloco un ALTD() y verifico las areas abiertas: ninguna.
>
> El caso es que NO se como evitar esos mensajes. Tampoco esos mensajes me
> informan ni de cual dataset ni de cual tabla está abierta.
>
> Saludos,
> José Luis Capel
>
>
Saludos José Luis:
No se si te servirá pero yo para cerrar la aplicación utilizo esto:
METHOD FormClose( oSender, lClose ) CLASS TFormMenu
*
lClose := .F.
*
IF MsgNoYes("¿Deseas Abandonar la aplicación.?", AppData:gCaption)
DBCOMMITALL()
DBCLOSEALL()
*
** Recordar copia de seguridad
IF MsgNoYes("Te recuerdo que si has modificado o añadido datos al
programa" + CRLF + ;
"es conveniente que realices la copia de seguridad de tus ficheros." +
CRLF + CRLF +;
"¿Quieres realizar una Copia de Seguridad ahora?", AppData:gCaption)
*
** Llamar al programa de copia de seguridad
::HacerCopia()
*
ENDIF
*
lClose := .T.
*
ENDIF
*
RETURN lClose
Prueba haber si te vale.
José Ramón Castro.
jose.luis
Posts: 1633
Joined: Fri Oct 14, 2005 10:56 pm

tDatasource y el mensaje: files not closed correctly

Postby jose.luis » Thu Jan 31, 2008 1:36 pm

José Ramón,
Gracias por tu respuesta.
Yo voy más por el hecho de que no tengo ninguna área de trabajo abierta y
sin embargo me aparecen esos mensajes del Datasource que no se como
eliminar.
Saludos y gracias por tu atención.
José Luis Capel
"José Ramón Castro Polinio" <jrcpoli-quitarpara_envio]"@terra.es> escribió
en el mensaje news:47a1b92f$1@ozsrv2.ozlan.local...
> José Luis Capel - Aicom escribió:
>> Hola,
>>
>> En mi aplicación estoy usando CdxDatasources/Datasets.
>>
>> A lo largo de la aplicación voy a abriendo diferentes Datasets y
>> cerrándolos.
>>
>> Es posible que alguna tabla abierta con Dataset no pertenezca a ningún
>> formulario.
>>
>> Al cerrar la aplicación Xailer me informa que tengo dos tablas no
>> cerradas correctamente.
>>
>> En ese punto coloco un ALTD() y verifico las areas abiertas: ninguna.
>>
>> El caso es que NO se como evitar esos mensajes. Tampoco esos mensajes me
>> informan ni de cual dataset ni de cual tabla está abierta.
>>
>> Saludos,
>> José Luis Capel
>>
>>
>
> Saludos José Luis:
>
> No se si te servirá pero yo para cerrar la aplicación utilizo esto:
>
> METHOD FormClose( oSender, lClose ) CLASS TFormMenu
> *
> lClose := .F.
> *
> IF MsgNoYes("¿Deseas Abandonar la aplicación.?", AppData:gCaption)
> DBCOMMITALL()
> DBCLOSEALL()
> *
> ** Recordar copia de seguridad
> IF MsgNoYes("Te recuerdo que si has modificado o añadido datos al
> programa" + CRLF + ;
> "es conveniente que realices la copia de seguridad de tus ficheros." +
> CRLF + CRLF +;
> "¿Quieres realizar una Copia de Seguridad ahora?", AppData:gCaption)
> *
> ** Llamar al programa de copia de seguridad
> ::HacerCopia()
> *
> ENDIF
> *
> lClose := .T.
> *
> ENDIF
> *
> RETURN lClose
>
> Prueba haber si te vale.
>
> José Ramón Castro.
jrcpoli
Posts: 240
Joined: Wed Oct 25, 2006 8:55 pm

tDatasource y el mensaje: files not closed correctly

Postby jrcpoli » Thu Jan 31, 2008 2:46 pm

José Luis:
Es que ha mí­ me ocurrí­a lo mismo y por eso usé esos dos comandos,
para que todos los datos fueran volcados a las tablas y se cerraran
todas las bases, la verdad es que no investigué porque daba ese mensaje,
al igual que tú cierro en cada formulario las tablas que uso y al igual
que tú también uso DataSource y DataSet en toda la aplicación no utilizo
en ningún momento la forma tradicional de Clipper, y al igual que tú uso
el RDD "DBFCDX".
José Ramón Castro.
José Luis Capel - Aicom escribió:
> José Ramón,
>
> Gracias por tu respuesta.
>
> Yo voy más por el hecho de que no tengo ninguna área de trabajo abierta y
> sin embargo me aparecen esos mensajes del Datasource que no se como
> eliminar.
>
> Saludos y gracias por tu atención.
> José Luis Capel
>
> "José Ramón Castro Polinio" <jrcpoli-quitarpara_envio]"@terra.es> escribió
> en el mensaje news:47a1b92f$1@ozsrv2.ozlan.local...
>
>> José Luis Capel - Aicom escribió:
>>
>>> Hola,
>>>
>>> En mi aplicación estoy usando CdxDatasources/Datasets.
>>>
>>> A lo largo de la aplicación voy a abriendo diferentes Datasets y
>>> cerrándolos.
>>>
>>> Es posible que alguna tabla abierta con Dataset no pertenezca a ningún
>>> formulario.
>>>
>>> Al cerrar la aplicación Xailer me informa que tengo dos tablas no
>>> cerradas correctamente.
>>>
>>> En ese punto coloco un ALTD() y verifico las areas abiertas: ninguna.
>>>
>>> El caso es que NO se como evitar esos mensajes. Tampoco esos mensajes me
>>> informan ni de cual dataset ni de cual tabla está abierta.
>>>
>>> Saludos,
>>> José Luis Capel
>>>
>>>
>>>
>> Saludos José Luis:
>>
>> No se si te servirá pero yo para cerrar la aplicación utilizo esto:
>>
>> METHOD FormClose( oSender, lClose ) CLASS TFormMenu
>> *
>> lClose := .F.
>> *
>> IF MsgNoYes("¿Deseas Abandonar la aplicación.?", AppData:gCaption)
>> DBCOMMITALL()
>> DBCLOSEALL()
>> *
>> ** Recordar copia de seguridad
>> IF MsgNoYes("Te recuerdo que si has modificado o añadido datos al
>> programa" + CRLF + ;
>> "es conveniente que realices la copia de seguridad de tus ficheros." +
>> CRLF + CRLF +;
>> "¿Quieres realizar una Copia de Seguridad ahora?", AppData:gCaption)
>> *
>> ** Llamar al programa de copia de seguridad
>> ::HacerCopia()
>> *
>> ENDIF
>> *
>> lClose := .T.
>> *
>> ENDIF
>> *
>> RETURN lClose
>>
>> Prueba haber si te vale.
>>
>> José Ramón Castro.
>>
>
>
>
--
José Ramón Castro.
User avatar
ignacio
Site Admin
Posts: 8574
Joined: Mon Apr 06, 2015 8:00 pm
Location: Madrid, Spain
Contact:

tDatasource y el mensaje: files not closed correctly

Postby ignacio » Thu Jan 31, 2008 5:36 pm

José Luis,
¿Es posible que alguna tabla la cierres directamente con DBClose() o USE?
La función que se dispará está en sourceDataSource.prg y este es su código:
EXIT PROCEDURE DataSourceExitProc()
LOCAL n, nOpen
FOR n := Len( aDataSources ) TO 1 STEP -1
WITH OBJECT aDataSources[ n ]
nOpen := 0
Aeval( :aDataset, {|v| iif( v:lOpen, nOpen ++ , ) } )
IF nOpen > 0
MsgAlert( "XAILER " + :Classname() + ": " + ;
Ltrim( Str( nOpen ) ) + " files not closed
correctly" )
ENDIF
:End()
END WITH
NEXT
RETURN
Prueba a recorrete el array TDataSource:aDataset a la salida de la
aplicación para ver cual tiene su propiedad lOpen a verdadero y así obtener
alguna pista de lo que realmente puede estar pasando.
Un saludo,
--
Ignacio Ortiz de Zúñiga
[Soporte Xailer]
[Xailer support]
"José Luis Capel - Aicom" <jose.luis@iaicom.com> escribió en el mensaje
news:47a1b604@ozsrv2.ozlan.local...
> Hola,
>
> En mi aplicación estoy usando CdxDatasources/Datasets.
>
> A lo largo de la aplicación voy a abriendo diferentes Datasets y
> cerrándolos.
>
> Es posible que alguna tabla abierta con Dataset no pertenezca a ningún
> formulario.
>
> Al cerrar la aplicación Xailer me informa que tengo dos tablas no cerradas
> correctamente.
>
> En ese punto coloco un ALTD() y verifico las areas abiertas: ninguna.
>
> El caso es que NO se como evitar esos mensajes. Tampoco esos mensajes me
> informan ni de cual dataset ni de cual tabla está abierta.
>
> Saludos,
> José Luis Capel
>
>
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
jose.luis
Posts: 1633
Joined: Fri Oct 14, 2005 10:56 pm

tDatasource y el mensaje: files not closed correctly

Postby jose.luis » Thu Jan 31, 2008 6:20 pm

Ignacio,
Gracias por tu atención al responderme.
Por partes:
a. Casi te puedo asegurar que no cierro ninguna tabla 'manualmente'. He
buscado por todo mi programa el texto 'dbclosearea' o 'dbcloseall' sin
éxito. El comando USE hace años que no lo 'toco'. En cualquier caso lo que
me interesa es quitar esos mensajes.
b. Por lo que veo del fuente que me muestras, el responsable de estos
mensajes es un EXIT PROCEDURE. He buscado la variable 'aDatasources' con el
debugger y no la he sabido encontrar. ¿Donde está?
c. El tema está en que el debugger no accede (o no he sabido como acceder) a
la EXIT PROCEDURE y por lo tanto no he podido 'ver' los datasets que tienen
la tabla abierta (teóricamente).
d. Tampoco puedo quitar el EXIT PROCEDURE por que aunque lo añada a, por
ejemplo, el PRG de entrada al final se ejecutan los dos (el nativo de XAILER
y el que he añadido con el mismo nombre).
Por cierto, ya que hablamos del debugger:
CLASS miClase FROM tComponent
PROPERTY a
...
...
ENDCLASS
CLASS miOtraClase FROM miClase
PROPERTY b
....
ENDCLASS
No consigo que aparezca B en el debugger.
Saludos y gracias por tu ayuda.
José Luis Capel
User avatar
ignacio
Site Admin
Posts: 8574
Joined: Mon Apr 06, 2015 8:00 pm
Location: Madrid, Spain
Contact:

tDatasource y el mensaje: files not closed correctly

Postby ignacio » Fri Feb 01, 2008 9:22 am

José Luis,
> a. Casi te puedo asegurar que no cierro ninguna tabla 'manualmente'. He
> buscado por todo mi programa el texto 'dbclosearea' o 'dbcloseall' sin
> éxito. El comando USE hace años que no lo 'toco'. En cualquier caso lo
> que
> me interesa es quitar esos mensajes.
En mi anterior mensaje te he dicho claramente y de una forma muy sencilla
como delimitar exactamente los dos datasets que muestran el mensaje.
>
> b. Por lo que veo del fuente que me muestras, el responsable de estos
> mensajes es un EXIT PROCEDURE. He buscado la variable 'aDatasources' con
> el
> debugger y no la he sabido encontrar. ¿Donde está?
Arriba del todo en datasource.prg
>
> c. El tema está en que el debugger no accede (o no he sabido como acceder)
> a
> la EXIT PROCEDURE y por lo tanto no he podido 'ver' los datasets que
> tienen
> la tabla abierta (teóricamente).
>
Ya te he dicho como solucionarlo en mi anterior mensaje. Si quieres hacerlo
a la bruto haz esto antes de abandonar la aplicación:
Aeval( oDataSource:aDataset, {|v| iif( v:lOpen, v:Close(), ) }
> d. Tampoco puedo quitar el EXIT PROCEDURE por que aunque lo añada a, por
> ejemplo, el PRG de entrada al final se ejecutan los dos (el nativo de
> XAILER
> y el que he añadido con el mismo nombre).
>
Cierto. Lo único que puedes hacer es lo que te comento antes.
> Por cierto, ya que hablamos del debugger:
>
>
> CLASS miClase FROM tComponent
> PROPERTY a
> ...
> ...
> ENDCLASS
>
> CLASS miOtraClase FROM miClase
> PROPERTY b
> ....
> ENDCLASS
>
> No consigo que aparezca B en el debugger.
>
Un ejemplo por favor.
Un saludo,
--
Ignacio Ortiz de Zúñiga
[Soporte Xailer]
[Xailer support]
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
jose.luis
Posts: 1633
Joined: Fri Oct 14, 2005 10:56 pm

tDatasource y el mensaje: files not closed correctly

Postby jose.luis » Fri Feb 01, 2008 10:07 am

Hola Ignacio,
Gracias por tu respuesta.
En mi aplicación tengo tres datasources creados al principio de la
aplicación. Además se crean y destruyen datasources de forma dinámica en
ciertas partes de la aplicación.
He revisado mi código para verificar que esos datasources/datasets creados
dinámicamente se cierren correctamente. Creo que se hace bien.
Al final de la aplicación he puesto lo siguiente:
Aeval(::oDs_Fplus:aDataset,{| o | IIF( o:lOpen,
MsgInfo(o:cname), ) })
Aeval(::oDs_Fplus_Comun:aDataset,{| o | IIF( o:lOpen,
MsgInfo(o:cname), ) })
Aeval(::oDs_Fplus_Adicional:aDataset,{| o | IIF( o:lOpen,
MsgInfo(o:cname), ) })
Y para esos tres datasources NO hay ningún dataset abierto. NO puedo
comprobar si la matriz estática 'aDatasources' tiene más de esos tres
datasources. Seguramente si por que si no no aparecería los mensajes que
lanza Xailer.
Además, por el debugger NO aparece ninguna area de trabajo abierta.
a. ¿Habría alguna forma de ampliar la información que da Xailer sobre los
datasets abiertos?
b. ¿Habría alguna forma de quitar esos mensajes a voluntad del programador?
Saludos y gracias por tu ayuda y atención,
José Luis Capel
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
news:47a2d6c5$1@ozsrv2.ozlan.local...
> José Luis,
>
>> a. Casi te puedo asegurar que no cierro ninguna tabla 'manualmente'. He
>> buscado por todo mi programa el texto 'dbclosearea' o 'dbcloseall' sin
>> éxito. El comando USE hace años que no lo 'toco'. En cualquier caso lo
>> que
>> me interesa es quitar esos mensajes.
>
> En mi anterior mensaje te he dicho claramente y de una forma muy sencilla
> como delimitar exactamente los dos datasets que muestran el mensaje.
>
>>
>> b. Por lo que veo del fuente que me muestras, el responsable de estos
>> mensajes es un EXIT PROCEDURE. He buscado la variable 'aDatasources' con
>> el
>> debugger y no la he sabido encontrar. ¿Donde está?
>
> Arriba del todo en datasource.prg
>
>>
>> c. El tema está en que el debugger no accede (o no he sabido como
>> acceder) a
>> la EXIT PROCEDURE y por lo tanto no he podido 'ver' los datasets que
>> tienen
>> la tabla abierta (teóricamente).
>>
>
> Ya te he dicho como solucionarlo en mi anterior mensaje. Si quieres
> hacerlo a la bruto haz esto antes de abandonar la aplicación:
>
> Aeval( oDataSource:aDataset, {|v| iif( v:lOpen, v:Close(), ) }
>
>> d. Tampoco puedo quitar el EXIT PROCEDURE por que aunque lo añada a, por
>> ejemplo, el PRG de entrada al final se ejecutan los dos (el nativo de
>> XAILER
>> y el que he añadido con el mismo nombre).
>>
>
> Cierto. Lo único que puedes hacer es lo que te comento antes.
>
>> Por cierto, ya que hablamos del debugger:
>>
>>
>> CLASS miClase FROM tComponent
>> PROPERTY a
>> ...
>> ...
>> ENDCLASS
>>
>> CLASS miOtraClase FROM miClase
>> PROPERTY b
>> ....
>> ENDCLASS
>>
>> No consigo que aparezca B en el debugger.
>>
>
> Un ejemplo por favor.
>
> Un saludo,
>
>
> --
> Ignacio Ortiz de Zúñiga
> [Soporte Xailer]
> [Xailer support]
>
User avatar
ignacio
Site Admin
Posts: 8574
Joined: Mon Apr 06, 2015 8:00 pm
Location: Madrid, Spain
Contact:

tDatasource y el mensaje: files not closed correctly

Postby ignacio » Fri Feb 01, 2008 11:14 am

José Luis,
Modifica el módulo dataset.prg incluyendo la siguiente función:
FUNCTION GetDataSources();RETURN aDatasources
De esta forma podrás comprobar los datasources existentes.
Saludos
--
Ignacio Ortiz de Zúñiga
[Soporte Xailer]
[Xailer support]
"José Luis Capel - Aicom" <jose.luis@iaicom.com> escribió en el mensaje
news:47a2e0ca$1@ozsrv2.ozlan.local...
> Hola Ignacio,
>
> Gracias por tu respuesta.
>
> En mi aplicación tengo tres datasources creados al principio de la
> aplicación. Además se crean y destruyen datasources de forma dinámica en
> ciertas partes de la aplicación.
>
> He revisado mi código para verificar que esos datasources/datasets creados
> dinámicamente se cierren correctamente. Creo que se hace bien.
>
> Al final de la aplicación he puesto lo siguiente:
>
> Aeval(::oDs_Fplus:aDataset,{| o | IIF( o:lOpen,
> MsgInfo(o:cname), ) })
> Aeval(::oDs_Fplus_Comun:aDataset,{| o | IIF( o:lOpen,
> MsgInfo(o:cname), ) })
> Aeval(::oDs_Fplus_Adicional:aDataset,{| o | IIF( o:lOpen,
> MsgInfo(o:cname), ) })
>
> Y para esos tres datasources NO hay ningún dataset abierto. NO puedo
> comprobar si la matriz estática 'aDatasources' tiene más de esos tres
> datasources. Seguramente si por que si no no aparecería los mensajes que
> lanza Xailer.
>
> Además, por el debugger NO aparece ninguna area de trabajo abierta.
>
> a. ¿Habría alguna forma de ampliar la información que da Xailer sobre los
> datasets abiertos?
> b. ¿Habría alguna forma de quitar esos mensajes a voluntad del
> programador?
>
> Saludos y gracias por tu ayuda y atención,
> José Luis Capel
>
>
> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
> news:47a2d6c5$1@ozsrv2.ozlan.local...
>> José Luis,
>>
>>> a. Casi te puedo asegurar que no cierro ninguna tabla 'manualmente'. He
>>> buscado por todo mi programa el texto 'dbclosearea' o 'dbcloseall' sin
>>> éxito. El comando USE hace años que no lo 'toco'. En cualquier caso lo
>>> que
>>> me interesa es quitar esos mensajes.
>>
>> En mi anterior mensaje te he dicho claramente y de una forma muy sencilla
>> como delimitar exactamente los dos datasets que muestran el mensaje.
>>
>>>
>>> b. Por lo que veo del fuente que me muestras, el responsable de estos
>>> mensajes es un EXIT PROCEDURE. He buscado la variable 'aDatasources'
>>> con el
>>> debugger y no la he sabido encontrar. ¿Donde está?
>>
>> Arriba del todo en datasource.prg
>>
>>>
>>> c. El tema está en que el debugger no accede (o no he sabido como
>>> acceder) a
>>> la EXIT PROCEDURE y por lo tanto no he podido 'ver' los datasets que
>>> tienen
>>> la tabla abierta (teóricamente).
>>>
>>
>> Ya te he dicho como solucionarlo en mi anterior mensaje. Si quieres
>> hacerlo a la bruto haz esto antes de abandonar la aplicación:
>>
>> Aeval( oDataSource:aDataset, {|v| iif( v:lOpen, v:Close(), ) }
>>
>>> d. Tampoco puedo quitar el EXIT PROCEDURE por que aunque lo añada a, por
>>> ejemplo, el PRG de entrada al final se ejecutan los dos (el nativo de
>>> XAILER
>>> y el que he añadido con el mismo nombre).
>>>
>>
>> Cierto. Lo único que puedes hacer es lo que te comento antes.
>>
>>> Por cierto, ya que hablamos del debugger:
>>>
>>>
>>> CLASS miClase FROM tComponent
>>> PROPERTY a
>>> ...
>>> ...
>>> ENDCLASS
>>>
>>> CLASS miOtraClase FROM miClase
>>> PROPERTY b
>>> ....
>>> ENDCLASS
>>>
>>> No consigo que aparezca B en el debugger.
>>>
>>
>> Un ejemplo por favor.
>>
>> Un saludo,
>>
>>
>> --
>> Ignacio Ortiz de Zúñiga
>> [Soporte Xailer]
>> [Xailer support]
>>
>
>
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info

Return to “Spanish”