aspose.info
RU

DBF - файл базы данных dBase

Обновлено

.DBF вариант №

Файл с расширением .dbf представляет собой файл базы данных, используемый приложением системы управления базами данных под названием dBASE. Первоначально база данных dBASE называлась Project Vulcan; начатый Wayne Ratliff в 1978 году. Тип файла DBF был введен в dBASE II в 1983 году. Он упорядочивает несколько записей данных с полями типа Array. Программное обеспечение базы данных xBase, которое популярно благодаря совместимости с широким спектром форматов файлов; также поддерживает файлы DBF.

Формат файла DBF

Формат файла DBF принадлежит системе управления базами данных dBASE, но может быть совместим с xBase или другим программным обеспечением СУБД. Первоначальная версия файла dbf состояла из простой таблицы, в которую можно было добавлять, изменять, удалять или печатать данные с использованием набора символов ASCII. С течением времени .dbf был улучшен, и были добавлены дополнительные файлы для расширения функций и возможностей системы баз данных.

В современном dBASE файл DBF состоит из заголовка, записей данных и маркера EOF (конец файла).

  • Заголовок содержит информацию о файле, такую как количество записей и количество типов полей, используемых в записях.
  • Записи содержат фактические данные.
  • Конец файла отмечен одним байтом со значением 0x1A.

Заголовок файла

Внешний вид заголовка файла в dBase приведен в следующей таблице:

БайтСодержаниеЗначение
01 байтДействительный файл dBASE для DOS; биты 0–2 указывают на номер версии, бит 3 указывает на наличие memo-файла dBASE для DOS, биты 4–6 указывают на наличие таблицы SQL, бит 7 указывает на наличие любого мемо-файла (либо dBASE m PLUS, либо dBASE для DOS). ДОС)
1–33 байтаДата последнего обновления; в формате ГГММДД
4–732-битное числоКоличество записей в файле базы данных
8–916-битное числоКоличество байтов в заголовке
10–1116-битное числоКоличество байтов в записи
12–132 байтаСдержанный; заполнить 0
141 байтФлаг, указывающий на незавершенную транзакцию[примечание 1]
151 байтФлаг шифрования[примечание 2]
16–2712 байтЗарезервировано для dBASE для DOS в многопользовательской среде
281 байтФлаг производственного файла .mdx; 1, если есть рабочий файл .mdx, 0, если нет
291 байтИдентификатор языкового драйвера
30–312 байтаСдержанный; заполнить 0
32–n [примечание 3] [примечание 4]32 байта каждыймассив дескрипторов полей (раскладку дескрипторов см. ниже)
п + 11 байт0x0D как признак конца массива дескрипторов полей
  • Функция ISMARKEDO проверяет этот флаг (BEGIN TRANSACTION устанавливает его в 1, END TRANSACTION и ROLLBACK сбрасывает его в 0).
  • Если этот флаг установлен в 1, появляется сообщение База данных зашифрована.
  • Максимальное количество полей 255.
  • n означает последний байт в массиве дескрипторов полей.

Массив дескрипторов полей

Расположение дескрипторов полей в dBASE:

БайтСодержаниеЗначение
0–1011 байтИмя поля в ASCII (с нулями)
111 байтТип поля. Допустимые значения: C, D, F, L, M или N (значения см. в следующей таблице)
12–154 байтаЗарезервировано
161 байтДлина поля в двоичном формате (максимум 254 (0xFE)).
171 байтДесятичное число полей в двоичном формате
18–192 байтаИдентификатор рабочей области
201 байтПример
21–3010 байтЗарезервировано
311 байтФлаг производственного поля MDX; 1, если поле имеет индексный тег в рабочем MDX-файле, 0, если нет

Записи базы данных

Каждая запись начинается с флага удаления (1 байт). Поля заключаются в записи без разделителей полей. Все полевые данные представлены в формате ASCII. В зависимости от типа поля приложение накладывает дополнительные ограничения. Вот типы полей в dBase:

Тип поляМнемоникаЧто он принимает
СПерсонажЛюбой текст ASCII (дополненный пробелами до длины поля)
ДДатаЧисла и символ для разделения месяца, дня и года (хранятся внутри как 8 цифр в формате ГГГГММДД)
ФПлавающая точка-, ., 0–9 (выровнено по правому краю, дополнено пробелами)
лЛогическийY, y, N, n, T, t, F, f или ? (при неинициализации)
МПамяткаЛюбой текст ASCII (хранится внутри как 10 цифр, представляющих номер блока .dbt, с выравниванием по правому краю, дополненный пробелами)
НЧисловой-, ., 0–9 (выровнено по правому краю, дополнено пробелами)

Использованная литература

См. также