Documentación
La clase TDbf se encarga de la Gestión y control de:
- Ficheros DBF.- Apertura/Creación
automática ficheros DBF
- Apertura/Creación automática
ficheros Indices
- Trabajo en red automáticamente
- Reciclado de registros
- Encriptación de ficheros
- Scopes
- Creación automática de campos como DATOS de la clase
- Validación de campos
- Campos calculados
La utilización de la clase se puede hacer de tres maneras
diferentes:
1.- Utilizando comandos predefinidos.
Ej. DEFINE FIELD ... OF oDbf
2.- Utilizando los métodos de la clase.
Ej. oDbf:AddField(...)
3.- Utilizando unos comandos y métodos simultáneamente.
Yo recomiendo que se utilicen los comandos predefinidos, pero ya
que no están
implementados todos los métodos como comando a veces se hará
imprescindible la
utilización mixta.
Implementar nuevos comandos definidos por usuario no es difícil
por lo que
animo a Félix o a Mauricio o a cualquiera que utilice a que lo
haga :-)
Voy a describir en primer lugar las variables de instancia de la
clase y luego
los comandos y cada uno de los métodos.
*******************************************************************************
LA CLASE TDBF
*******************************************************************************
* VARIABLES DE INSTANCIA
Las variables de instancia o DATAS son las que van a definir
características
y comportamientos del objeto. Las datas solo se deberían de
cambiar a través de
los métodos de la clase para seguir con el más estricto método
OOP, pero aquí
se puede acceder directamente a ellas por ej. lSync := .t..
Las voy a dividir según el tipo ya que en TDbf están
prototipadas para que
haya una protección de tipo.
- Tipo Array:
. aTField: Guarda objetos de tipo TField.
Ej. ? aTField[ 3 ]:Val //Imprime el valor del primer campo
. aTIndex: Guarda objetos de tipo TIndex.
Ej. ? aTIndex[ 1 ]:nOrden //Imprime el orden del índice
. aTRelation: Guarda objetos de tipo TRelation.
Ej. ? aTRelation[ 2 ]:cLink //Imprime la cadena de enlace
- Tipo Caracter:
. cUsrAlias: Es alias que el usuario pone, la clase comprueba que
no
existe ninguna con ese nombre en el sistema, si no existe el
valor
de ::cAlias se iguala a :.cUsrAlias. Esto se ha hecho para que no
haya problemas en Windows al abrir la misma ventana mas de una
vez
incluso en el mismo programa.
. cAlias: Una vez que se haya abierto la DBF guarda el alias, si
se puso
un alias de usuario ::cUsrAlias debe coincidir con este. Este
dato
no debe ser cambiado por el programador solo consultado.
. cRDD: Es driver que se esta utilizando, por defecto es DBFNTX.
. cFile: Nombre del fichero físico de la DBF.
- Tipo numérico:
. nArea: Es solo consulta, guarda el numero de área.
. nSeconds: Guarda el tiempo en segundos que espera entre
reintentos en
los bloqueos en entornos de red.
. nFieldCount: Numero de campos de todo tipo que hay en la DBF.
- Tipo lógico:
. lBuffer: Determina si queremos trabajar con buffer de datos.
. lRecycle: Determina el sistema de reciclado de registros.
. lShared: Determina modo compartido en red.
. lReadOnly: Determina si la DBF se abre para consultas.
. lProtec: Determina la encriptacion de la DBF.
. lReset: Uso interno. Para activar el tiempo de reseteo.
. lRelation: Determina si hay relaciones activadas.
. lSync: Determina si se sincronizan las DBF hijas en relaciones.
. lEof: Determina si está en el final lógico de la DBF. Incluso
aunque
haya filtros.
. lBof: Determina si esta en el principio lógico de la DBF.
Incluso aunque
haya filtros.
. lScope: Determina la existencia de filtros.
- Tipo CodeBlock:
Atención todos los CodeBlock tienen que retornar un valor logico
para
que funcionen correctamente.
. bNetError: Se ejecuta en caso de errores en red/bloqueos.
. bOnCreate: Se ejecuta antes crear la DBF.
. bOnOpen: Se ejecuta antes de abrir la DBF.
. bOnClose: Se ejecuta antes de cerrar la DBF.
. bBof: Se ejecuta al detectar el principio de la DBF.
. bEof: Se ejecuta al detectar el final de la DBF.
. bOpenError: Se ejecuta al detectar un error en la apertura de
la DBF.
. bFor: Condición FOR para el tratamiento de registros. Aun no
esta
implementada, se utilizara para los sumatorios, medias etc.
- Tipo Objeto:
. oIdxActive: Es el objeto de tipo TIndex que esta activo en este
momento.
- Tipo todos:
. uValMin, uValMax: Valores máximo y mínimo de un SCOPE.