Таблицы сохраняются в базе данных. Некоторые СУБД сохраняют базу данных в виде нескольких отдельных файлов, представляющих собой таблицы (в основном, все локальные СУБД), в то время как другие состоят из одного файла, который содержит в себе все таблицы и индексы (InterBase). Например, таблицы dBase и Paradox всегда сохраняются в отдельных файлах на диске. Директорий, содержащий dBase .DBF файлы или Paradox .DB файлы, рассматривается как база данных. Другими словами, любой директорий, содержащий файлы в формате Paradox или dBase, рассматривается Delphi как единая база данных. Для переключения на другую базу данных нужно просто переключиться на другой директорий. Как уже было указано выше, InterBase сохраняет все таблицы в одном файле, имеющем расширение .GDB, поэтому этот файл и есть база данных InterBase.
Удобно не просто указывать путь доступа к таблицам базы данных, а использовать для этого некий заменитель - псевдоним, называемый алиасом. Он сохраняется в отдельном конфигурационном файле в произвольном месте на диске и позволяет исключить из программы прямое указание пути доступа к базе данных. Такой подход дает возможность располагать данные в любом месте, не перекомпилируя при этом программу. Кроме пути доступа, в алиасе указываются тип базы данных, языковый драйвер и много другой управляющей информации. Поэтому использование алиасов позволяет легко переходить от локальных баз данных к SQL-серверным базам (естественно, при выполнении требований разделения приложения на клиентскую и серверную части).
Для создания алиаса запустите утилиту конфигурации BDE (программу BDECFG.EXE), находящуюся в директории, в котором располагаются динамические библиотеки BDE.
По умолчанию, при установке Delphi создается директорий IDAPI, в котором и располагаются указанные библиотеки; при этом иконка с BDECFG обязательно будет присутствовать в группе Delphi.
Главное окно утилиты настройки BDE имеет вид, изображенный на рис.1. Для создания алиаса выберите страничку "Aliases" и нажмите кнопку "New Alias". В появившемся диалоговом окне введите имя алиаса и выберите его тип (тип базы данных) из выпадающего списка. Тип алиаса может быть стандартным (STANDARD) для работы с локальными базами в формате dBase или Paradox или соответствовать наименованию SQL-сервера (InterBase, Sybase, Informix, Oracle и т.д.).
Рис. 1: Главное окно утилиты конфигурации BDE
Рис. 2: В диалоговом окне добавления нового алиаса можно указать имя алиаса и тип базы данных
После создания нового алиаса его имя появится в списке алиасов на той же страничке "Aliases". Однако просто создать алиас не достаточно. Вам нужно указать дополнительную информацию, содержание которой зависит от типа выбранной базы данных. Например, для баз данных Paradox и dBase (STANDARD) требуется указать лишь путь доступа к данным:
TYPE | STANDARD |
PATH | c:\users\data |
SQL-сервер InterBase требует задания десяти параметров, многие из которых можно оставить установленными по умолчанию (кроме, обычно, параметров SERVER NAME и USER NAME):
TYPE | INTRBASE |
PATH | |
SERVER NAME | myserv:g:\users\contacts.gdb |
USER NAME | SYSDBA |
OPEN MODE | READ/WRITE |
SCHEMA CACHE SIZE | 8 |
LANGDRIVER | Pdox ANSI Cyrillic |
SQLQRYMODE | |
SQLPASSTHRU MODE | SHARED AUTOCOMMIT |
SCHEMA CACHE TIME | -1 |
В этом примере база данных CONTACTS.GDB размещается в директории USERS, находящемся на диске G Windows NT сервера, называющегося MYSERV. Имя пользователя при связи с базой данных по этому алиасу - SYSDBA. Остальные параметры - LANGDRIVER, SQLQRYMODE, SQLPASSTHRU MODE, SCHEMA CACHE SIZE и SCHEMA CACHE TIME рассмотрим подробней.
Параметр LANGDRIVER определяет языковый драйвер для доступа к базе данных. Для правильной работы с русскими буквами при работе с базой данных формата dBase нужно выбрать значение "dBASE RUS cp866", при работе с базами данных формата Paradox и SQL-серверами (в том числе InterBase) - "Pdox ANSI Cyrillic". Кроме того, на этапе создания базы данных InterBase необходимо указать CHARACTER SET (набор символов) WIN1251.
Параметр SQLQRYMODE появляется только в случае, если установлен Borland SQL Links для связи с SQL-серверами. Он определяет режим передачи SQL-запросов и может иметь три значения:
Параметр SQLPASSTHRU MODE определяет, могут ли запросы, передаваемые для выполнения на сервер (passthrouh SQL, использующие set-ориентированный подход), и стандартные вызовы BDE (использующие record-ориентированный навигационный подход) обрабатываться в одном и том же сеансе соединения с базой данных (в одном и том же "коннекте") - быть "SHARED". Он также может иметь три значения:
В параметре SCHEMA CACHE SIZE указывается число таблиц базы данных, информация о структуре которых будет кэшироваться, обеспечивая быстрый доступ к метаданным. Значение этого параметра может быть целым числом от 0 до 32. По умолчанию установлено число 8.
Параметр SCHEMA CACHE TIME определяет время, в течение которого будет кэшироваться информация из таблиц базы данных. Может иметь следующие значения:
Напомним, что установки по умолчанию параметров SQLQRYMODE, SQLPASSTHRU MODE, SCHEMA CACHE SIZE и SCHEMA CACHE TIME обеспечивают достаточно оптимальный режим работы с базой данных. Экспериментировать с ними для достижения наибольшей эффективности работы с конкретной базой данных желательно только после накопления некоторого опыта работы с BDE.
Остановимся подробней на задании такого важного параметра, как SERVER NAME. В нем нужно указать не только имя сервера (на котором находится Ваша база данных) и полный путь доступа к базе, но и сетевой протокол. Создатели утилиты настройки BDE не сочли нужным выделять протокол в отдельный параметр, поэтому необходимо использовать следующие выражения: