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.

DataSets y DataSources

Foro de Xailer profesional en español
Responder
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

DataSets y DataSources

Mensaje por Xevi »

A ver si me familiarizo con los DataControls...
Tengo una duda sobre si cerrar un DataSet
FUNCTION miFuncion()
LOCAL oNtxDataSourceORALBARANS, oDataSetORALBARANS
WITH OBJECT oNtxDataSourceORALBARANS := TNtxDataSource():New( Self )
:cConnect := oXevi:cRuta + oXevi:cCodiEmpresa
:lAbortOnErrors := .T.
:lDisplayErrors := .F.
:Create()
END
WITH OBJECT oDataSetORALBARANS := TDbfDataSet():New( Self )
:oDataSource := oNtxDataSourceORALBARANS
:cProcess := "GENERAL"
:cName := "ALBAR.Dbf"
:lDisplayErrors := .F.
:aIdxFiles := { "Albar01", "Albar02", "Albar03", "Albar04", "Albar05", "Albar06", "Albar07", "Albar08", "Albar09", "Albar10", "Albar11", "Albar12" }
:Create()
END
....
....
RETURN NIL
¿Hace falta antes del Return... CERRAR el DataSet???
O por contra, en este caso en concreto, al tratarse de una variable LOCAL, al terminar la función y terminar por consiguiente la visibilidad de la misma variable, automáticamente se cierra el Dataset???
Gracias.
Un Saludo,
Xevi.
--
joseluis
Mensajes: 642
Registrado: Jue Sep 08, 2005 12:54 pm

DataSets y DataSources

Mensaje por joseluis »

Xevi,
No lo he probado...
Los objetos que se crean con variables locales se 'destruyen' cuando se
pierde el ámbito. No obstante, eso no significa que se dispare
automáticamente el método de cierre de tablas. Como mucho se disparará
el método DESTRUCTOR si así­ fue definido.
Serí­a buena práctica, desde mi punto de vista, cerrar esos datasets
cuando no vayas a usarlos más.
Saludos,
José Luis Capel
Xevi escribió:
> A ver si me familiarizo con los DataControls...
>
> Tengo una duda sobre si cerrar un DataSet
>
> FUNCTION miFuncion()
> LOCAL oNtxDataSourceORALBARANS, oDataSetORALBARANS
> WITH OBJECT oNtxDataSourceORALBARANS := TNtxDataSource():New( Self )
> :cConnect := oXevi:cRuta + oXevi:cCodiEmpresa
> :lAbortOnErrors := .T.
> :lDisplayErrors := .F.
> :Create()
> END
>
> WITH OBJECT oDataSetORALBARANS := TDbfDataSet():New( Self )
> :oDataSource := oNtxDataSourceORALBARANS
> :cProcess := "GENERAL"
> :cName := "ALBAR.Dbf"
> :lDisplayErrors := .F.
> :aIdxFiles := { "Albar01", "Albar02", "Albar03", "Albar04",
> "Albar05", "Albar06", "Albar07", "Albar08", "Albar09", "Albar10",
> "Albar11", "Albar12" }
> :Create()
> END
> ...
> ...
> RETURN NIL
>
>
> ¿Hace falta antes del Return... CERRAR el DataSet???
> O por contra, en este caso en concreto, al tratarse de una variable
> LOCAL, al terminar la función y terminar por consiguiente la visibilidad
> de la misma variable, automáticamente se cierra el Dataset???
>
> Gracias.
>
> Un Saludo,
> Xevi.
>
>
>
>
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9469
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

DataSets y DataSources

Mensaje por ignacio »

Xevi,
El único problema que tendrás es que la tabla Albaran.dbf se quedará abierta. No obstante el propio DataSource la cerrará antes de salir de la aplicación, y creo recordar que incluso te muestra un mensaje de aviso indicandote de que existí­a una tabla abierta, para que lo soluciones.
Un saludo,
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:43900586$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
A ver si me familiarizo con los DataControls...
Tengo una duda sobre si cerrar un DataSet
FUNCTION miFuncion()
LOCAL oNtxDataSourceORALBARANS, oDataSetORALBARANS
WITH OBJECT oNtxDataSourceORALBARANS := TNtxDataSource():New( Self )
:cConnect := oXevi:cRuta + oXevi:cCodiEmpresa
:lAbortOnErrors := .T.
:lDisplayErrors := .F.
:Create()
END
WITH OBJECT oDataSetORALBARANS := TDbfDataSet():New( Self )
:oDataSource := oNtxDataSourceORALBARANS
:cProcess := "GENERAL"
:cName := "ALBAR.Dbf"
:lDisplayErrors := .F.
:aIdxFiles := { "Albar01", "Albar02", "Albar03", "Albar04", "Albar05", "Albar06", "Albar07", "Albar08", "Albar09", "Albar10", "Albar11", "Albar12" }
:Create()
END
...
...
RETURN NIL
¿Hace falta antes del Return... CERRAR el DataSet???
O por contra, en este caso en concreto, al tratarse de una variable LOCAL, al terminar la función y terminar por consiguiente la visibilidad de la misma variable, automáticamente se cierra el Dataset???
Gracias.
Un Saludo,
Xevi.

--
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Responder