Page 1 of 1

DATABASE

Posted: Sun Sep 24, 2006 7:18 am
by Manuel Valdenebro
Si estoy utilizando la clase DATABASE:

Local oDbf
USE ficheros
DATABASE oDbf

If lAlta
oDbf:BLANK()
else
oDbf:LOAD()
endi

. . .
. . .


oDbf:UNLOCK() para que se usa.

Si quiero cerrar el objeto oDbf, pero no cerrar la base de datos, que comando/funcion debo usar?

Un saludo

Posted: Sun Sep 24, 2006 9:00 am
by Antonio Linares
Manuel,

> oDbf:UNLOCK() para que se usa.

Para ser llamado a continuación de una llamada directa a oDbf:Lock() ó oDbf:RecLock()

>
Si quiero cerrar el objeto oDbf, pero no cerrar la base de datos, que comando/funcion debo usar?
>

El objeto oDbf no es necesario que sea cerrado. Al salir del ámbito de una función, el recolector de basuras de Harbour lo destruye y ya está.

Posted: Sun Sep 24, 2006 9:53 am
by Manuel Valdenebro
Antonio, gracias por contestar:

Normalmente, cuando voy a grabar los datos de Odbf al fichero, y antes de hace odbf:SAVE(), bloqueo el registro de la forma habitual en Clipper:

Lock()
oDbf:Save()
Unlock

oDbf:Unlock es similar a usar Unlock ?

y siguiendo con el simil, oDbf:Close cierra la base de datos igual que el comando CLOSE?

Posted: Sun Sep 24, 2006 12:24 pm
by Frafive
Manuel , Cuando haces un oDbf:save y la base la tienes en modo compartido no hace falta bloquear el registro, el metodo save ya se encarga de hacerlo, oDbf:Unlock es igual que Unlock y cuando hace un oDbf:close estas cerrando la base de datos, una cosa muy importante para utilizar la clase database es no mezclar codigo de los metodos de la database con los comandos.

Posted: Sun Sep 24, 2006 1:10 pm
by Antonio Linares
Manuel,

> oDbf:Unlock es similar a usar Unlock ?



>
y siguiendo con el simil, oDbf:Close cierra la base de datos igual que el comando CLOSE?
>


Posted: Sun Sep 24, 2006 1:11 pm
by Antonio Linares
Manuel,

Como te comenta Frafive, el método Save() se encarga de los bloqueos. Revisa el código fuente de la clase TDataBase.

Posted: Sun Sep 24, 2006 7:59 pm
by Manuel Valdenebro
Muchas gracias Antonio y Frafive