qDBF

Permite manejar un archivo DBF como un objeto.

Hija de
No tiene clase padre.

Variables
aDatos Valores de los campos (readonly)
aCampos Nombres de los campos (readonly)
aRelacion Control equivalente a SET RELATION entre objetos qDBF (readonly)
bChange Codeblock que se evalúa cada vez que se cambia de registro
bSave Codeblock que se evalúa cada vez que se llama el método save() antes de guardar el registro
cAlias Alias del archivo (readonly)
lDirecto Indica que se trabaja directamente sobre el archivo (.t.), no en memoria (.f.), por defecto, todos los objetos se inicializan como .f.
lOEM Indica si se realiza una conversión OEM-ANSI o ANSI-OEM al leer los datos el archivo y guararlos (.t.) o no (.f.), por defecto, todos los objetos se inicializan como .f.
nArea Número del area de trabajo (readonly)
__nRegistro Número del registro (recNo()) que fue cargado a memoria, este será el número devuelto por el método ::recNo(), y se utiliza para reacomoar el apuntador cuano éste es movido por alguna razón de manera externa al objeto

Métodos
new() Método constructor
dbGoto() Cambia al registro indicado
dbGoTop() Cambia al primer registro
dbGoBottom() Cambia al último registro
dbSkip() Salta el número de registros indicado
dbSeek() Busca un registro
eof() Indica si esta al final del archivo
bof() Indica si se intentó ir más atras del primer registro
change() Evento que se ejecuta cada vez que se cambia de registro
dbCloseArea() Cierra el archivo
recNo() Indica el número del registro que se tiene cargado en memoria
fCount() Devuelve el total de campos
rLock() Bloquea el registro actual
dbCommit() Forza que se guarde físicamente en el disco la información que ya se ha indicado guardar, pero se encuentra todavía en la memoria intermedia
dbRUnlock() Desbloquea un registro
load() Carga al objeto la información del registro del archivo
save() Graba la información del objeto en el archivo
fieldGet() Muestra la información de un campo
fieldPut() Graba información en un campo
fieldPos() Devuelve la posición de un campo
fieldName() Devuelve el nombre de un campo
blank() Carga los campos con la información de un registro vacío
dbAppend() Agrega un registro nuevo al archivo
dbSelectArea() Cambia el area de trabajo activa por la que utiliza el objeto
dbSetRelation() Crea una relación entre con otro objetos qDBF
dbDelRelation() Borra una relación entre objetos qDBF
setScope() Establece o elimna los valores de inicio y final de un rango dentro de un índice(ordScope())
ordScope() Establece o elimina el inicio o final de un rango dentro de un índice
dbDelete() Marca como borrado un registro
dbRecall() Quita la marca de borrado a un registro
deleted() Indica si el registro está marcado como borrado
ordSetFocus() Cambia el índice activo
dbSetFilter() Crea un filtro de registros
dbClearFilter() Elimina el filtro de registros
dbEval() Recorre el archivo realizando un proceso por cada registro
ordKeyNo() Devuelve la posición del registro dentro del índice activo
ordKeyCount() Devuelve el total de registros del índice activo
indexKey() Devuelve la llave del índice activo
found() Indica si la última busqueda se realizó con exito
dbOrderInfo() Modifica o devuelve información del índice
netErr() Indica si la última operación con prevención de error de red
select() Devuelve el número del area de trabajo usada por el objeto

Descripción
Permite manejar un archivo DBF como un objeto, realiza las operaciones necesarias para trabajar en red sin necesidad de que el programador se preocupe por ello, aunque también tiene las funciones para que el programador pueda realizar las operaciones de red de manera manual.

Métodos

new( cAlias )
Este método crea un objeto qDBF de un archivo.
Devuelve: Una referencia al objeto.
cAlias Alias del archivo que se quiere utilizar para el objeto, si no se envía utiliza el area activa

dbGoto( nReg )
Cambia al registro indicado.
Devuelve: Una referencia al objeto.
nReg Número físico del registro al que se quiere cambiar

dbGoTop()
Cambia al primer registro, si no está activo algún índice brinca al registro 1, si hay índice activo brinca al primer registro de acuerdo al índice.
Devuelve: Una referencia al objeto.

dbGoBottom()
Cambia al último registro, si no está activo algún índice brinca al último registro del archivo, si hay índice activo brinca al último registro de acuerdo al índice.
Devuelve: Una referencia al objeto.

dbSkip( nSkip )
Salta el número de registros indicado, si es un número positivo salta hacia adelante, si es negativo salta hacia atras, respetando el orden, si no hay índice activo, brinca sobre el orden físico, si hay índice activo, de acuerdo al orden del índice, si se indica 0 (cero), refresca la información del registro en memoria.
Devuelve: Una referencia al objeto.
nSkip Número de registros que se desea brincar, si no se envía brinca uno

dbSeek( xSeek, lSoft, lLast )
Busca un registro dentro del índice activo.
Devuelve: .t.. si localiza el registro, .f. si no lo encuentra.
xSeek Valor del registro que se desea buscar de acuerdo a la llave del índice
lSoft Si se envía .t. y no localiza el registro, se posiciona en el siguiente registro que correspondería al buscado, si es .f. o no se envía, se posiciona al final del archivo
lLast Si localiza uno o más registros que cumplan lo buscado (xSeek), si se envía .t. se posiciona en el último registro que cumpla la condición, si es .f. o no se envía, se posiciona en el primero

eof()
Indica si el apuntador se encuentra en fin de archivo.
Devuelve: Devuelve .t. si se encuentra al final del archivo o .f. si no.

bof()
Indica si se intentó ir más alla del primer registro.
Devuelve: Devuelve .t. si se intentó ir más alla del primer registro o .f. si no.

change()
Evento que se ejecuta cada vez que se cambia de registro, actualiza la información que tiene el registro, actualiza las relaciones con los objetos relacionados y evalúa el codeblock ::bChange.
Devuelve: Una referencia al objeto.

dbCloseArea()
Cierra el archivo.
Devuelve: NIL

recNo()
Indica el número del registro que se tiene cargado en memoria.
Devuelve: El númer del registro del objeto.

fCount()
Devuelve el total de campos del archivo.
Devuelve: Total de campos.

rLock()
Bloquea el registro actual.
Devuelve: .t. si se bloqueo con exito, .f. si no.

dbCommit()
Forza que se guarde físicamente en el disco la información que ya se ha indicado guardar, pero se encuentra todavía en la memoria intermedia.
Devuelve: NIL

dbRUnlock( nReg )
Desbloquea un registro.
Devuelve: NIL
nReg Indica el número del registro que se quiere desbloquear, si no se envía, desbloquea el registro actual

load( lRefresh )
Carga al objeto la información del registro del archivo.
Devuelve: Una referencia al objeto.
lRefresh Si se envía .t. se asegura que el registro que se lee es el registro que se tiene en la memoria del objeto, si es falso o no se envía, lee la información del registro actual

save( lBloquado, lCommit )
Graba la información del objeto en el archivo.
Devuelve: Una referencia al objeto.
lBloqueado Indica si mantiene el bloqueo del registro despues de grabar la información (.t.) o lo desbloquea (.f.), si no se envía, se desbloquea el registro
lCommit Indica si se forza el grabar la información de la memoria intermedia (.t.) o se mantiene el proceso normal (.f.), si no se envía, forza el grabado

fieldGet( nCampo )
Muestra la información de un campo.
Devuelve: El contenido del campo.
nCampo Número del campo que se desea consultar

fieldPut( nCampo, xValor )
Graba información en un campo.
Devuelve: El dato guardado (xValor).
nCampo Número del campo en el que se desea guardar la información
xValor Información a guardar

fieldPos( cCampo )
Devuelve la posición de un campo.
Devuelve: Número que corresponde a la posición del campo dentro del registro.
cCampo Nombre del campo que se desea conocer la posición

fieldName( nCampo )
Devuelve el nombre de un campo.
Devuelve: Nombre del campo.
nCampo Número del campo del que se quiere saber el nombre

blank()
Carga los campos con la información de un registro vacío.
Devuelve: Una referencia al objeto.

dbAppend( lUnlock )
Agrega un registro nuevo al archivo y mantiene el apuntador en ese nuevo registro, pero sin borrar la información que tiene el objeo en los campos en ese momento, esto permite manejar la información del registro y cuando sea necesario agregar el registro y poder guardar la información.
Devuelve: .t. si se agregó con exito, .f. si no.
lUnlock .t. si se desbloquea el registro despues de agregarlo, si no se envía o .f. se mantiene bloqueado

dbSelectArea()
Cambia el area de trabajo activa por la que utiliza el objeto.
Devuelve: NIL

dbSetRelation( oDBF, bcRelacion, lAumentar )
Crea una relación entre con otro objetos qDBF, cada vez que el objeto actual cambie de registro, se realiza una busqueda dentro del objeto relacionado y se actualiza su información, trabaja de la misma manera que SET RELATION pero con objetos qDBF.
Devuelve: Una referencia al objeto.
oDBF Objeto qDBF que se actualizará al cambiar de registro
bcRelacion Codeblock o nombre de una fución que debera devolver la expresión a buscar dentro del objeto oDBF, este códeblock o función recibira como parametro una referencia al objeto qDBF al que se relaciona oDBF
lAumentar Indica si oDBF se añada a las relaciones existente (.t.) o se eliminan las relaciones existentes y solo conserva la nueva (.f.), si no se envía, borra las relaciones existentes

dbDelRelation( oDBF )
Borra una relación entre objetos qDBF.
Devuelve: Una referencia al objeto.
oDBF Objeto qDBF del que se quiere eliminar la relación, si no se envía, se borran todas las relaciones

setScope( xInicio, xFinal )
Establece o elimna los valores de inicio y final de un rango dentro de un índice(ordScope()).
Devuelve: Una referencia al objeto.
xInicio Inicio del rango, si no se envía, limpia el inicio del filtro
xFinal Final del rango, si no se envía, se toma el valor de xInicio

ordScope( nAmbito, xValor )
Establece o elimina el inicio o final de un rango dentro de un índice.
Devuelve: El valor anterior.
nAmbito 0 - Indica que se establece el valor inicial del rango
1 - Indica que se establece el valor final del rango
xValor Valor que se asigna

dbDelete()
Marca como borrado un registro.
Devuelve: NIL

dbRecall()
Quita la marca de borrado a un registro.
Devuelve: NIL

deleted()
Indica si el registro está marcado como borrado.
Devuelve: .t. si está marcado como borrado, .f. si no.

ordSetFocus( ncIndice, cArchivo )
Cambia el índice activo.
Devuelve: El índice anterior.
ncIndice Nombre o número del índice
cArchivo Nombre del archivo contenedor del índice, solamente es necesario si se envía el nombre del índice y hay más de un índice con el mismo nombre

dbSetFilter( bFilter, cFilter )
Crea un filtro de registros.
Devuelve: Una referencia al objeto.
bFilter Codeblock con la expresión que se utilizará para establecer el filtro, también puede ser enviado como cadena de caracteres, en este caso, internamente se convierte en codeblock y tambien se utiliza como valor para cFilter
cFilter Cadena de caracteres que debe representar la misma expresión que contiene el codeblock, es opcional, solamente es necesaria si posteriormente se quiere revisar cual es la condición utilizada para el filtro, o también si se utiliza qsRDD, para que el servidor realice el filtro y no se haga de manera local

dbClearFilter()
Elimina el filtro de registros creado con ::dbSetFilter() o directamente con dbSetFilter o SET FILTER TO ...
Devuelve: NIL

dbEval( bBloque, bFor, bWhile, nNext, nRegistro, lResto )
Recorre el archivo realizando un proceso por cada registro.
Devuelve: Una referencia al objeto.
bBloque Codeblock que se evalúa para cada uno de los registros
bFor Codeblock que indica un filtro que señala que registros se deben procesar y cuales no
bWhile Codeblock que indica cuando se detiene el proceso, o mejor dicho, no se detiene mientras la expresión bWhile se cumpla y no sea fin de archivo
nNext Cuantos registros a partir del actual se procesan
nRegistro Que registro se procesa
lResto Indica que se procesan todos los registros desde el actual hasta el final del archivo

ordKeyNo()
Devuelve la posición del registro dentro del índice activo.
Devuelve: Número de orden del registro dentro del índice activo.

ordKeyCount()
Devuelve el total de registros del índice activo.
Devuelve: Total de registros que contiene el índice activo.

indexKey()
Devuelve la llave del índice activo.
Devuelve: Llave del índice activo.

found()
Indica si la última busqueda se realizó con exito.
Devuelve: .t. si encontró el registro, .f. si no.

dbOrderInfo( nOpcion, cArchivo, ncIndice, xVal )
Modifica o devuelve información del índice.
Devuelve: Valor anterior.
nOpcion Opción a modificar/consultar
cArchivo Nombre del archivo contenedor del índice, solamente es necesario si se envía el nombre del índice y hay más de un índice con el mismo nombre
ncIndice Nombre o número del índice
xVal Si no se envía será solo consulta

netErr( lNuevoValor )
Indica si la última operación con prevención de error de red.
Devuelve: .t. si ubo error, .f. si no.
lNuevoValor Valor que se asigna a netErr

select()
Devuelve el número del area de trabajo usada por el objeto.
Devuelve: Número del área de trabajo del objeto.

Ejemplo

use miArchivo
oDbf := qDBF():new()
oDbf:dbGoto( 15 )
oDbf:nombre := "Pepe"
oDbf:save()