С++ Builder не имеет своего формата таблиц, но поддерживает, как собственные, два типа локальных таблиц dBase и Paradox. Каждая из этих таблиц имеет свои особенности. Таблицы dBase являются одним из первых появившихся форматов таблиц для персональных компьютеров и поддерживаются многими системами, которые связаны с разработкой и обслуживанием приложений, работающих с БД.
Основные достоинства таблиц dBase:
- простота использования;
- совместимость с большим числом приложений.
Ниже содержится список типов полей таблиц dBase IV. Для каждого типа приводится символ, используемый для его обозначения в программе Database Desktop (это программа создания и редактирования таблиц, SQL-запросов и запросов QBE), а также описание значений, которые может содержать поле рассматриваемого типа.
Тип | Обозначение | Описание значения |
Character | C | Строка символов. Длина не более 255 символов |
Float | F | Число с плавающей точкой. Диапазон: -10308 ... 10308. Точность - 15 цифр мантиссы |
Number | N | Число в двоично-десятичном формате BCD(BinaryCodedDecimal) |
Date | D | Дата |
Logical | L | Логическое значение. Допустимы значения true(истина) и false(ложь). Разрешается использование прописных букв |
Memo | M | Строка символов. Длина не ограничена. Символы хранятся в файле с расширением dbt |
OLE | O | Данные в формате, который поддерживается технологией OLE. Данные хранятся в файле с расширением dbt |
Binary | В | Последовательность байтов. Длина не ограничена. Байты содержат произвольное двоичное значение, хранятся в файле с расширением dbt |
Таблицы dBase являются достаточно простыми и используют для своего хранения на дисках относительно мало физических файлов. По расширению файлов можно определить, какие данные они содержат:
- dbf - таблица с данными;
- dbt - данные больших двоичных объектов, или BLOB-данные (BinaryLargeOBject). К ним относятся двоичные,меню- и OLE-поля. Memo-поле также называют полем комментариев;
- mdx - поддерживаемые индексы;
- ndx - индексы, непосредственно не поддерживаемые форматом dBase. При использовании таких индексов программист должен обрабатывать их самостоятельно.
Имя поля в таблице dBase должно состоять из букв и цифр и начинаться с буквы. Максимальная длина имени составляет 10 символов. В имена нельзя включать специальные символы и пробел.
К недостаткам таблиц dBase относится то, что они не поддерживают автоматическое использование парольной защиты и контроль целостности связей, поэтому программист должен кодировать эти действия самостоятельно.
Таблицы Paradox являются достаточно развитыми и удобными для создания БД. Можно отметить следующие их достоинства:
- большое количество типов полей для представления данных различных типов;
- поддержка целостности данных;
- организация проверки вводимых данных;
- поддержка парольной защиты таблиц.
Большой набор типов полей позволяет гибко выбирать тип для точного представления данных, хранимых в базе. Например, для представления числовой информации можно использовать один из пяти числовых типов. В ниже содержится список типов полей для таблиц Paradox7. Для каждого типа приводятся символ, используемый для обозначения этого типа в программе Database Desktop, и описание значений, которые может содержать поле рассматриваемого типа.
Тип | Обозначение | Описание значения |
Alpha | А | Строка символов. Длина не более 255 символов |
Number | N | Число с плавающей точкой. Диапазон: -10307 ... 10308. Точность 15 цифр мантиссы |
Money | $ | Денежная сумма. Отличается от типа Number тем, что в значении отображается денежный знак. Обозначение денежного знака зависит от установок Windows |
Short | s | Целое число. Диапазон: -32 768 ... 32 767 |
Longlnteger | i | Целое число. Диапазон:-2 147 483 648 ... 2 147 483 647 |
BCD | # | Число в двоично-десятичном формате |
Date | D | Дата. Диапазон: 01.01.9999 до н. э. ... 31.12.9999 |
Time | T | Время |
Timestamp | Дата и время | |
Memo | M | Строка символов. Длина не ограничена. Первые 240 символов хранятся в файле таблицы, остальные в файле с расширением mb |
Formatted Memo | F | Строка символов. Отличается от типа Memo тем, что строка может содержать форматированный текст |
Graphic | G | Графическое изображение. Форматы BMP, PCX, TIFF, GIF и EPS. При загрузке в поле изображение преобразуется к формату BMP. Для хранения изображения используется файл с расширением mb |
OLE | O | Данные в формате, который поддерживается технологией OLE. Данные хранятся в файле с расширением mb |
Logical | L | Логическое значение. Допустимы значения true(истина) и false(ложь). Разрешается использование прописных букв |
Autoincrement | + | Автоинкрементное поле. При добавлении к таблице новой записи в поле автоматически заносится значение, на единицу большее, чем в последней добавленной записи. При удалении записи значение ее автоинкрементного поля больше не будет использовано. Значение автоинкрементного поля доступно для чтения и обычно используется в качестве ключевого поля |
Binary | В | Последовательность байтов. Длина не ограничена. Байты содержат произвольное двоичное значение. Первые 240 байтов хранятся в файле таблицы, остальные в файле с расширением mb |
Bytes | Y | Последовательность байтов. Длина не более 255 байтов |
При работе с таблицей в среде программы Database Desktop значения полей типа Graphic, Binary, Memo и OLE не отображаются.
Имя поля в таблице Paradox должно состоять из букв (допускается кириллица) и цифр и начинаться с буквы. Максимальная длина имени составляет 25 символов. В имени можно использовать такие символы, как пробел, #, $ и некоторые другие. Не рекомендуется использовать символы ., ! и j, т.к. они зарезервированы в С++ Builder для других целей. При задании ключевых полей они должны быть первыми в структуре таблицы.
Если требуется обеспечить перенос или совместимость данных из таблиц Paradox с таблицами других форматов, желательно выбирать имя поля длиной не более 10 символов и составлять его из цифр и латинских букв.
Поддержка концепции целостности данных обеспечивает правильность ссылок между таблицами. Например, если в БД имеются таблицы клиентов и заказов, то эти таблицы могут быть связаны следующим образом: каждая запись таблицы заказов ссылается через индексное поле на запись в таблице клиентов, соответствующую сделавшему заказ клиенту. Если в таблице клиентов любым способом удалить запись с информацией о каком-либо клиенте, то BDE автоматически удалит все записи, соответствующие этому клиенту, из таблицы заказов. Такое удаление взаимосвязанных записей называют каскадным.
Для полей можно определить специальный диапазон, в котором должны находиться вводимые в них значения. Кроме того, для каждого поля можно определить минимальное и максимальное допустимые значения. При попытке ввода в поле значения, выходящего за допустимые границы, возникает исключение (исключительная ситуация), значение не вводится и содержимое поля не изменяется. Например, для поля salary (оклад) в качестве минимального значения логично указать ноль, тем самым в это поле запрещается вводить отрицательные значения. Максимальное значение поля salary зависит от организации, страны и других факторов.
Наряду с диапазоном допустимых значений для каждого поля можно задать значение по умолчанию, которое автоматически заносится в поле при добавлении к таблице новой записи.
При работе с конфиденциальной информацией может потребоваться защита таблиц и их полей. Для каждой таблицы Paradox следует указать основной пароль, который используется при изменениях во всей таблице, связанных со сменой структуры или с редактированием данных в любом поле. Возможно также задание дополнительного пароля, позволяющего ограничить доступ к конкретному полю или группе полей таблицы, а также набора операций, применимых к таблице (например, разрешения только на чтение записей таблицы без возможности их модификации). После установки паролей они будут автоматически запрашиваться и контролироваться при любой попытке доступа к таблице.
Определенным недостатком таблиц Paradox является наличие относительно большого количества типов файлов, требующихся для хранения содержащихся в таблице данных. При копировании или перемещении какой-либо таблицы из одного каталога в другой необходимо обеспечить копирование или перемещение всех файлов, относящихся к этой таблице.
Файлы таблиц Paradox имеют следующие расширения:
- db - таблица с данными;
- mb - BLOB-данные;
- рх - главный индекс (ключ);
- xg* и yg* - вторичные индексы;
- val - параметры для проверки данных и целостности ссылок;
- tvи fam - форматы вывода таблицы в программе Database Desktop.
Указанные файлы создаются, только если в них есть необходимость; конкретная таблица может не иметь всех приведенных файлов.
Кроме названных файлов при работе в сети для управления доступом к таблицам Paradox используются файлы с расширением net.