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