Estructura de archivos de tabla (.dbc, .dbf, .frx, .lbx, .mnx, .pjx, .scx, .vcx)
Visual FoxPro usa tablas para almacenar datos que definen distintos tipos de archivos. Los tipos de archivos que se guardan como archivos de tabla son:
- Tabla (.dbf)
- Base de datos (.dbc)
- Formulario (.scx)
- Etiqueta (.lbx)
- Menú (.mnx)
- Proyecto (.pjx)
- Informe (.frx)
- Biblioteca de clases Visual (.vcx)
Como estos archivos son tablas en realidad, los puede utilizar y examinar de la misma forma que examina cualquier archivo .dbf.
Un archivo de tabla está formado por un registro de encabezado y por registros de datos. El registro de encabezado define la estructura de la tabla y contiene cualquier otra información relacionada con la tabla. Comienza en la posición de archivo cero. Los registros de datos1 siguen al encabezado (en bytes consecutivos) y contienen el texto real de los campos.
Para obtener información acerca de las estructuras de tabla de los distintos tipos de archivo, vea Estructuras de tabla de archivos de tabla.
La longitud de un registro (en bytes) se determina sumando las longitudes definidas de todos los campos. En los archivos de tabla, los enteros se almacenan con el byte menos significativo en primer lugar.
Estructura del registro de encabezado de la tabla
Desplazamiento de bytes | Descripción |
---|---|
0 | Tipo de archivo 0x02 FoxBASE 0x03 FoxBASE+/dBASE III PLUS, sin memo 0x30 Visual FoxPro 0x43 dBASE IV SQL archivos de tabla, sin memo 0x63 dBASE IV SQL archivos de sistema, sin memo 0x83 FoxBASE+/dBASE III PLUS, con memo 0x8B dBASE IV con memo 0xCB dBASE IV SQL archivos de tabla, con memo 0xF5 FoxPro 2.x (o anterior) con memo 0xFB FoxBASE |
1 – 3 | Última actualización (YYMMDD) |
4 – 7 | Número de registros de un archivo |
8 – 9 | Posición del primer registro de datos |
10 – 11 | Longitud de un registro de datos (incluyendo el indicador de eliminación) |
12 – 27 | Reservado |
28 | Indicadores de tabla 0x01 el archivo tiene un .cdx estructural 0x02 el archivo tiene un campo Memo 0x04 el archivo es una base de datos (.dbc) Observe que este byte puede contener la suma de cualquiera de los valores anteriores. Por ejemplo, 0x03 indica que la tabla tiene un .cdx estructural y un campo Memo. |
29 | Marca de página de códigos |
30 – 31 | Reservado, contiene 0x00 |
32 – n | Subregistros de campo El número de campos determina el número de subregistros de campo. Hay un subregistro de campo por cada campo de la tabla. |
n+1 | Final de registro de encabezado (0x0D) |
n+2 a n+264 | Intervalo de 263-bytes que contiene la información de vínculo anterior (la ruta de acceso relativa de una base de datos asociada (.dbc)). Si el primer byte es 0x00, el archivo no está asociado a una base de datos. Por lo tanto, las bases de datos siempre contienen el 0x00. |
1 1 En el archivo de datos, los datos comienzan en la posición indicada por los bytes 8 a 9 del registro de encabezado. Los registros de datos comienzan con un byte indicador de eliminación. Si este byte es un espacio ASCII (0x20) el registro no se borra; si el primer byte es un asterisco (0x2A) el registro es eliminado. Los datos de los campos nombrados en los subregistros de campo van detrás del indicador de eliminación.
Estructura de los subregistros de campo
Desplazamiento de bytes | Descripción |
---|---|
0 – 10 | Nombre de campo (máximo de 10 caracteres — si hay menos de 10 caracteres, se rellena con caracteres nulo (0x00)) |
11 | Tipo de campo: C – Character Y – Currency N – Numeric F – Float D – Date T – DateTime B – Double I – Integer L – Logical M – Memo G – General C – Character (binario) M – Memo (binario) P – Picture |
12 – 15 | Desplazamiento de campo en el registro |
16 | Longitud de campo (en bytes) |
17 | Número de cifras decimales |
18 | Indicadores de campo 0x01 Columna de sistema (no es visible para el usuario) 0x02 La columna puede almacenar valores NULL 0x04 Columna binaria (sólo para CHAR y MEMO) |
19 – 32 | Reservado |
Para obtener información acerca de limitaciones de número de caracteres por registro, número máximo de campos, etc., consulte Capacidades del sistema de Visual FoxPro.
Observaciones
Visual FoxPro no modifica el encabezado de un archivo guardado en formato de archivo FoxPro 2.x a menos que se le haya añadido al archivo alguna de las siguientes características:
Compatibilidad con el valor nulo
Tipos de datos DateTime, Currency y Double
Se marca como binario un campo CHAR o MEMO
Se agrega una tabla a un archivo de base de datos (.dbc)
Sugerencia Se puede usar la siguiente fórmula para obtener el número de campos de un archivo de tabla:
(x – 296/32)
. En la fórmula,x
es la posición del primer registro (bytes 8 a 9 en el registro de encabezado de la tabla), 296 es 263 (información de vínculo anterior) + 1 (final del registro de encabezado) + 32 (primer subregistro de campo) y 32 es la longitud de un subregistro de campo.
Vea también
Páginas de códigos compatibles con Visual FoxPro | Tipos de datos y campos | Estructuras de tabla de archivos de tabla (.dbc, .frx, .lbx, .mnx, .pjx, .scx, .vcx) | Capacidades del sistema de Visual FoxPro | Comprobar diferencias en formularios, informes y otros archivos de tabla | Extensiones de archivo y tipos de archivo