11.2. Отличия разных RDD

В CLIP имеются следующие поддрайвера:

Следующие RDD (в понятиях Clipper) состоят из следующих поддрайверов:

11.2.1. Драйвера таблиц

CLIP распознает тип открываемой таблицы по его сигнатуре, т.е. таблица успешно открывается даже если его сигнатура не соответствует заданной. Но это не относится к мемо-файлам и индексам.

Драйвера DBF и FOX практически одинаковые. Единственная разница - это сигнатура таблиц с мемо-полями (0xF5 в FOX, 0x83 в DBF). Драйвер VFP оперирует таблицами Visual FoxPro. Таблица VFP имеет видоизмененный заголовок и предоставляет некоторые возможности, недоступные в обычном формате DBF, например возможность создания бинарных полей, nullable полей (5-й и 6-й элементы в описании поля, используемого функциями DBCREATE() и DBSTRUCT()).

Все драйвера таблиц поддерживают все типы полей, описанных ниже.

Таблица 11-1. Типы полей

Тип поляИдентификатор(ы)Размер в таблицеОписание
CHARACTER'C'1 ... 65534Строки символов
VARCHAR[a]'V' [b]1 ... 65534Строки разной длины
NUMERIC'N', 'F' [c]1 ... 20Целые или дробные
CURRENCY'Y'[c]>8Денежные суммы
DOUBLE'B'[c]>8Числа с плавающей точкой двойной точности
INTEGER'I'[c]>, 'V(4)'[b]>4Целые числа
DATE'D', 'V(3)'[b]>8 (3 байта при V(3))Хронологические данные состоящие из года, месяца, дня
DATETIME'T'[c]>8Хронологические данные состоящие из года, месяца, дня и времени
LOGICAL'L'1Логическое значение "истина" или "ложь"
MEMO'M'10 (4 with VFP)Данные любого типа [d] без ограничений по размеру
BLOB[e]'P'[c]>, 'G'[c]>10 (4 with VFP)Бинарные данные любого типа [d]> без ограничений по размеру
VARIANT[f]'X'10 ... 127Данные любого типа xBase (CHARACTER, NUMERIC, DATE, DATETIME или LOGICAL)
Примечания:
a. Тип VARCHAR позволяет хранить строки разной длины. При этом первые <size_of_field> -6 байт хранятся непосредственно в .DBF файле, а остальные помещаются в мемо-файле. При индексации такого поля используются только байты, хранящиеся в .DBF.
b. Заимствовано из библиотеки SIx
c. Заимствовано из VFP
d. Доступно при использовании мемо-драйвера FPT, в DBT - только текст
e. BLOB поля - всегда бинарные, независимо от соответствующего значения в описании поля, переданному функции DBCREATE().
f. Тип VARIANT позволяет хранить данные любого примитивного типа xBase. Строки могут быть длиной до <размер_поля> - 2 (два байта отводятся для хранения типа данных и длины). Поля VARIANT могут индексироваться. Последовательность данных разных типов в индексе такова: CHARACTER, LOGICAL, DATE, DATETIME, NUMERIC.

11.2.2. Драйвера индексов

В следующей таблица показывается доступность основных свойств драйверов индексов.

11.2.3. Драйвера мемо-файлов

Имеется два драйвера мемо-файлов: DBT и FPT. Мемо-файлы DBT используются в DBFNTX и DBFCTX. Формат DBT файла полностью совместим с Clipper. Мемо-файлы FPT, используемые с DBFCDX и DBFIDX, имеют более мощный формат, который может быть использован не только для хранения текстовых данных, но и других данных (любой тип CLIP, включая объекты, бинарные данные (например, картинки), и т.д.