La Web del Programador: Comunidad de Programadores
 
    Pregunta:  10885 - COMO ABRIR UNA BD CON QBASIC O VBDOS
Autor:  César Nava Soto
Quiero saber si me pueden proporcionar un codigo completo de ejemplo, de como abrir y mostrar registros, con una base de datos ISAM o DBF con QBasic o VBdos.

  Respuesta:  Antoni Masana
Tengo la descripción de la cabecera de un fichero DBF pero es complejo el tratarlo en QBasic, no imposible. Con esto y unas cuantas teclas pulsadas se puede hacer lo que se quiera.

Estructura del registro de encabezado de la tabla

Desplazamiento de bytes Descripción
----------------------------------------------------------
00 – 00 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

01 – 03 Última actualización (YYMMDD)

04 – 07 Número de registros de un archivo

08 – 09 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 – 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 – 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) 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.