Компилятор, совместимый с языками семейства xBase и Clipper | ||
---|---|---|
Пред. | Глава 11. Заменяемые Драйвера Баз данных (RDD - Replaceable Database Drivers) | След. |
В CLIP имеются следующие поддрайвера:
драйвера таблиц: DBF, FOX и VFP
драйвера индексов: NTX, CTX, CDX, IDX
драйвера мемо-файлов: DBT, FPT
Следующие RDD (в понятиях Clipper) состоят из следующих поддрайверов:
DBFNTX: DBF + NTX + DBT
DBFCTX: DBF + CTX + DBT
DBFCDX: FOX + CDX + FPT
DBFIDX: FOX + IDX + FPT
SIXCDX: FOX + CDX + FPT синоним для DBFCDX
VFPCDX: VFP + CDX + FPT
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. Возможности индексов
Свойство | NTX | CTX | IDX | CDX |
---|---|---|---|---|
Поддержка тегов | Нет | Да | Нет | Да |
Количество тегов на файл | 1 | 63 | 1 | No limit |
Количество индексных файлов на рабочую область | Не ограничено | Не ограничено | Не ограничено | Не ограничено |
Условные индексы (INDEX ... FOR) | Да | Да | Да | Да |
Временные (частичные) индексы (INDEX ... WHILE) | Да | Да | Да | Да |
Обратный порядок ключей (INDEX ... DESCENDING) | Да | Да | Да | Да |
Уникальные ключи (INDEX ... UNIQUE) | Да | Да | Да | Да |
Интерактивная индексация (INDEX ... EVAL ... EVERY) | Да | Да | Да | Да |
Структурные индексы | Нет | Да | Нет | Да |
Максимальная длина ключевого выражения (байт) | 256 | 256 | 255 | 255 |
Максимальная длина выражения условия FOR (байт) | 256 | 256 | 255 | 255 |
Поддержка ограниченных отношений (scoped relations) | Да | Да | Да | Да |
Оптимизация фильтров и FOR условий (технология MachSIx/Rushmore) | Нет | Нет | Да | Да |
Имеется два драйвера мемо-файлов: DBT и FPT. Мемо-файлы DBT используются в DBFNTX и DBFCTX. Формат DBT файла полностью совместим с Clipper. Мемо-файлы FPT, используемые с DBFCDX и DBFIDX, имеют более мощный формат, который может быть использован не только для хранения текстовых данных, но и других данных (любой тип CLIP, включая объекты, бинарные данные (например, картинки), и т.д.
Пред. | Начало | След. |
Заменяемые Драйвера Баз данных (RDD - Replaceable Database Drivers) | Уровень выше | CLIP Classes |