Новости



Visual FoxPro 9 позволяет создавать ещё более производительные приложения баз данных.
Двадцатиление FoxPro! Microsoft принимает поздравления.
Visual FoxPro Toolkit for .NET - более 225 функций VFP 7.0, для языков .NET (подробнее)

Структура файлов таблиц (.DBC, .DBF, .FRX, .LBX, .MNX, .PJX, .SCX, .VCX)

См. также

Visual FoxPro использует таблицы для хранения данных, определяющих тот или и ой тип файла. Существуют следующие типы файлов, которые сохраняются в виде фай ов таблиц:

fox90000.gif Table (.DBF) fox90001.gif таблица

fox90000.gif Database (.DBC) fox90001.gif база данных

fox90000.gif Form (.SCX) fox90001.gif форма

fox90000.gif Label (.LBX) fox90001.gif этикетка

fox90000.gif Menu (.MNX) fox90001.gif меню

fox90000.gif Project (.PJX) fox90001.gif проект

fox90000.gif Report (.FRX) fox90001.gif отчет

fox90000.gif Visual Class Library (.VCX) fox90001.gif библиотека визуальных классов

Поскольку эти файлы фактически являются таблицами, вы можете использовать и п осматривать их точно так же, как и любой файл .DBF.

Файл таблицы состоит из записи заголовка и записей данных. Запись заголовка оп еделяет структуру таблицы и содержит прочую информацию, относящуюся к таблице. Она начинается с нулевой позиции файла. Записи данных (1) следуют за заголовком (в последовательно располагающихся областях) и содержат собственно текст полей.

Подробнее о табличной структуре файлов различных типов см. раздел Табличные структуры для файлов таблиц (.DBC, .FRX, .LBX, .MNX, .PJX, .SCX, .VCX).

Длина записи (в байтах) определяется путем сложения указанных длин всех ее по ей. Целые числа в файлах таблиц хранятся в форме, предусматривающей размещение первым наименее значащего байта.

Структура записи заголовка таблицы

Смещение в байтах
Описание
0
Тип файла
0x02 FoxBASE
0x03 FoxBASE+/dBASE III PLUS, без memo-поля
0x30 Visual FoxPro
0x43 Файлы таблиц dBASE IV SQL, без memo-поля
0x63 Системные файлы dBASE IV SQL, без memo-поля
0x83 FoxBASE+/dBASE III PLUS, с memo-полем
0x8B dBASE IV с memo-полем
0xCB Файлы таблиц dBASE IV SQL, с memo-полем
0xF5 FoxPro версии 2.x (или более ранней) с memo-полем
0xFB FoxBASE
1 ... 3
Дата последнего обновления (YYMMDD)
4 ... 7
Число записей в файле
8 ... 9
Позиция первой записи данных
10 ... 11
Длина одной записи данных (включая флаг удаления)
12 ... 27
Зарезервировано
28
Флажки таблиц
0x01 файл содержит .CDX
0x02 файл содержит memo-поля
0x04 файл является базой данных (.DBC)
Следует отметить, что данный байт может содержать любую сумму предшестующих з ачений. Например, 0х03 обозначает таблицу, имеющую структурированный файл .CDX и поле типа Memo.
29
Маркер кодовой страницы
30 ... 31
Зарезервировано, содержит 0x00
32 ... n
Подзаписи полей
Количество подзаписей полей определяется числом полей. Для каждого табличного поля имеется одна подзапись поля.
n+1
Признак конца заголовка записи (0x0D)
n+2 ... n+264
263-байтная область, содержащая информацию обратной связи с базой данных (от осительный путь к соответствующей базе данных .DBC). Если первый байт имеет з ачение 0x00, то данный файл не связан с базой данных. Следовательно, сами файлы аз данных всегда содержат 0x00.

(1) Данные в файле данных начинаются с позиции, указанной в байтах 8fox90002.gif9 записи заголовка. Записи данных начинаются с байта, содержащего флаг удале ия. Если этот байт содержит ASCII-код пробела (0x20), запись не удалена; если пе вый байт представляет звездочку (0x2A), запись удалена. Вслед за флагом удале ия идет содержимое полей, имена которых приведены в подзаписях полей.

Структура подзаписи поля

Смещение в байтах
Описание
0 ... 10
Имя поля (не более 10 символов fox90001.gif меньшее количество дополняется нуль-символами (0x00))
11
Тип поля:
C fox90002.gif Character (символьный)
Y fox90002.gif Currency (валютный)
N fox90002.gif Numeric (числовой)
F fox90002.gif Float (плавающий)
D fox90002.gif Date (дата)
T fox90002.gif DateTime (дата/время)
B fox90002.gif Double (двойной)
I fox90002.gif Integer (целый)
L fox90002.gif Logical (логический)
M fox90002.gif Memo
G fox90002.gif General
C fox90002.gif Character (символьный двоичный)
M fox90002.gif Memo (memo двоичный)
P fox90002.gif Picture (рисунок)
12 ... 15
Смещение поля в записи
16
Длина поля (в байтах)
17
Число знаков дробной части
18
Флажки поля
0x01 Системный столбец (невидимый для пользователя)
0x02 Столбец может содержать нуль-значения
0x04 Двоичный столбец (только для полей CHAR и MEMO)
19 ... 32
Зарезервировано

Подробнее об ограничениях на количество символов в одной записи, максимальное число полей и т.п. см. раздел Системные характеристики Visual FoxPro.

Замечания

Visual FoxPro версии 3.0 не модифицирует заголовок файла, сохраненного в фо мате FoxPro 2.x, если только файл не был дополнен следующими возможностями:

fox90000.gif Поддержка нуль-значений

fox90000.gif Типы данных DateTime (дата/время), Currency (валютный) и Double (двойной)

fox90000.gif Поле типа CHAR или MEMO, помеченное как Binary (двоичное)

fox90000.gif Таблица включается в базу данных (файл .DBC)

Совет Для получения количества полей в файле таблицы можно воспользоваться сле ующей формулой:

(x fox90002.gif 296/32)

где:
x = позиция первой записи (байты 8fox90002.gif9 в записи заголовка таблицы)
296 = 263 (информация обратной связи) + 1 (признак конца записи заголовка) + 32 (подзапись первого поля)
32 = длина подзаписи поля



Новое на сайте

  • Обновлен портфель программиста

    Добавлены: Установка HTML Help (Создание справочной системы), Imagedit.zip - Графический редактор ( ico и bmp), Библиотека локализации HTML Help (Русский)
  • Новые примеры программ

    Установка библиотек, Игровая программа "Охота на лис", Установка библиотек "Охота на лис", plastic -"Платежки", Библиотеки (на FPD26), platan -"Платежки" (на Clipper 5.2)
  • Обновленна справка

    Подсказки, технология программирования и использование Visual FoxPro. Команды, функции, операторы, объекты, свойства, события и методы.