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.
--
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.
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
DataSets y DataSources
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.
>
>
>
>
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.
>
>
>
>
- ignacio
- Site Admin
- Mensajes: 9469
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
DataSets y DataSources
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.
--
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
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com