Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 11829
Последний выпуск: 19.06.2015

DBF

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

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

struct Header {
     char id;              // Типы файлов с данными
                           // FoxBASE+/dBASE III +, без memo - 0х03
                           // FoxBASE+/dBASE III +, с memo - 0х83
                           // FoxPro/dBASE IV, без memo - 0х03
                           // FoxPro с memo - 0хF5
                           // dBASE IV с memo - 0x8B
     char modifed[3];      // Последнее изменение (ГГММДД)
     long records;         // Число записей в файле
     int fdata;            // Положение первой записи с данными
     int ldata;            // Длина одной записи с данными (включая признак удаления)
     char reserved[16];    // Зарезервированы
     char cdxfile;         // 1-есть структ.составной инд.файл (типа .CDX),0-нет
     char reserved1[3];    // Зарезервированы
     char field[32];       // Подзаписи полей (см. ниже) (**)
     ....
     char field[32];       // Подзаписи полей
     char end;             // Признак завершения записи заголовка (0х01)
}

struct field {             // Подзаписи полей
     char name[10];        // Название поля (максимально - 10 символов, если
                           // меньше 10, то дополняется пустым символом (0х00))
     char type;            // Тип данных:               
                           //  C - символьное;          
                           //  N - числовое;            
                           //  L - логическое;          
                           //  M - типа memo;           
                           //  D - дата;                
                           //  F - с плавающей точкой;  
                           //  P - шаблон.              
     long where;           // Расположение поля внутри записи
     char length;          // Длина поля (в байтах)
     char reserved[15];    // Зарезервированы

Примечания по структуре файла с данными.

(*) Данные в файле с данными начинаются с позиции, указываемой в записи заголовка в байтах 08-09. Записи с данными начинаются с байта, содержащего признак удаления. Если в этот байт занесен пробел в коде ASCII (0х20), то запись не удалялась; если же в первом байте - звездочка (0х2A), то запись удалена. За признаком удаления следуют данные из полей, названия которых находятся в подзаписях полей.

(**) Количество полей определяет число подзаписей полей. В базе данных для каждого поля существует одна подзапись поля.

(***) Ограничения по количеству знаков в записи, максимальному числу полей и т.д. смотрите в данном приложении в таблице "Системные возможности".

Системные возможности

FoxProУсоверш. FoxPro
Максимальное число записей в файле базы данных1 миллиард (*)1 миллирд (*)
Максимальное число символов в записи40004000
Максимальное число полей в записи255255
Максимальное число одновременно открытых баз данных2525
Максимальное число символов в поле базы данных254254
Максимальное число символов в индексном ключе (.IDX)100100
Максимальное число символов в индексном ключе (.CDX)254254
Максимальное число открытых индексных файлов в базе данныхбез ограничения (**)без ограничения (**)
Максимальное число открытых индексов во всех рабочих областяхбез ограничения (**)без ограничения (**)
Характеристики полей
Максимальный размер символьных полей254254
Максимальный размер числовых (и с плавающей точкой) полей2020
Максимальное число символов в названиях полей1010
Точность цифр при числовых вычислениях1616

FPT | IDX | CDX

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 

Комментарии

1.
1.8K
10 января 2008 года
andriano
474 / / 10.01.2008
Мне нравитсяМне не нравится
28 марта 2010, 11:25:10
Еще 3-й байт от конца заголовка (первый из трех, что отмечен как зарезервированные) является индексом кодовой страницы. Увы, в 1 байт поместить номер самой кодовой страницы нет возможности, поэтому используется соответствие номеров, используемух в заголовке, номерам самих кодовых страниц.
2.
47K
18 февраля 2009 года
coolfight
0 / / 18.02.2009
Мне нравитсяМне не нравится
19 февраля 2009, 15:04:27
ребят, а есть какая нить специальная прога,для создания файлов *.db или тока блокнотом))
3.
30K
10 июля 2007 года
talamar
2 / / 10.07.2007
Мне нравитсяМне не нравится
16 июля 2007, 22:37:30
Буфер под имя файла должен иметь длину 11 символов, а не 10.
Т.е., должно быть:
"char name[11]; // Название поля ..."
4.
Аноним
Мне нравитсяМне не нравится
14 сентября 2005, 15:51:16
Признак завершения заголовка (char end в структуре Header) в FoxPro 2.6 почему-то равен 0x0d, а не 0x01, как написано выше.
Поскольку вместо признака завершения может появиться первый символ названия следующего поля, который обязан быть латинской буквой, признаком завершения на самом деле может быть любой символ больше 0x0 и меньше 0x41 ('A').
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог