Delphi World - Размеры полей таблицы Paradox
Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Размеры полей таблицы Paradox

Автор: John B Moore

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

Требования к предельным размерам типов полей таблицы Paradox

Данный список указывает количество байт каждого типа поля таблицы Paradox, занимаемое в структуре записи. Имейте в виду, что указанный размер занимает каждое поля в самом файле .DB, не во вспомогательных файлах типа .MB.

   Тип данных           Байт
   -----------------------------------------------------------
   Alphanumeric          1 байт на символ, до 255
   AutoIncrement         4 байта
   Binary (BLOB)        10 байт + 1 на символ. В пределе
                           (0 - 240) [1]
   Bytes                 1 на символ, максимально до 255.
   BCD                  17
   Currency (Денежный)   8
   Date                  4
   Formatted Memo       10 байт + 1 на символ. В пределе 
                           (0 - 240)
   Graphic              10 байт + 1 на символ. В пределе 
                           (0 - 240)
   Memo                 10 байт + 1 на символ. В пределе 
                           (1 - 240) [2]
   Logical               1
   LongInt               4
   Numeric (Числовой)    8
   OLE                  10 байт + 1 на символ. В пределе
                           (0 - 240)
   SmallInt              2
   Time                  4
   TimeStamp             8

Пределы:
   Maximum Field Count      :  255 полей
   (максимальное количество
    полей)
   Maximum Blocks per table :  64К
   (максимальное количество
    блоков в таблице)
   Maximum Block Size       :  32К символов
   (максимальный размер 
    блока)
   Max Record Size, unkeyed :  Текущий размер блока - 6 байта [3]
   (максимальный размер 
    записи, неключевой)
   Max Record Size, keyed   :  (BlockSize - 6) / 3, округляется в меньшую сторону 
   (максимальный размер        до ближайшего размера блока. [4]    
    записи, ключевой)
Сноски:

[1] Все blob-поля содержат 10-байтовые указатели на .MB-файл, которые указывают где могут быть найдены "остальные" значения поля.

[2] В отличие от данных "blob"-типа, Memo-поле требует по крайней мере один "Memo"-символ, сохраненный в .DB-файле, для обеспечения совместимости с Paradox for DOS.

[3] Размер блока по умолчанию хранится в IDAPI.CFG. Для изменения значения по умолчанию, запустите Configuration Utility и измените установку Tables, Paradox, Block Size. Значение по умолчанию 2048 и может изменяться в диапазоне от 1024 до 32К. 6 байтов в данном значении резервируются для внутренних указателей.

[4] Это следствие наличия значений ключа записей Paradox, которые передаются в .PX файл, очень похожий на табличный файл. Размер ключа не может превышать 1/3 размера блока таблицы; в противном случае Paradox будет пытаться увеличить размер блока. При выполнении вычислений не забывайте брать в расчет 6-байтные указатели.

Проект Delphi World © Выпуск 2002 - 2017
Автор проекта: Эксклюзивные курсы программирования