Технология баз данных
Информация - Компьютеры, программирование
Другие материалы по предмету Компьютеры, программирование
? псевдонимов и драйверов BDE.
Для определения базы данных (сервера), с которой приложение устанавливает соединение при помощи компонента TData base, чаще используется СВОЙСТВО Alias Name. Свойства Database Name и Driver Name предоставляют альтернативный способ создания соединения. Если соединение задано свойством Alias Name, то свойство Database Name можно использовать для создания временного псевдонима, который будет доступен только для компонентов доступа к данным внутри приложения. При щелчке на кнопке списка доступных псевдонимов свойства Database Name в Инспекторе объектов для любого компонента доступа к данным, в списке будет доступен и временный псевдоним компонента TData base.
Например, при переключении приложения на другую базу данных можно изменить только значение псевдонима в компоненте TData base. Если все компоненты наборов данных подключены к временному псевдониму компонента TData base, то они автоматически переключатся на новую БД.
Если наборы данных приложения подключены к базе данных через компонент TData base, то перед их открытием необходимо установить соединение с БД. Соединение с БД устанавливается при помощи метода open. Если попытаться активизировать набор данных без этого, то соединение будет установлено автоматически. Аналогичная картина возникает при закрытии наборов данных и отключении от БД.
При подключении к базе данных довольно часто требуется задать значения для параметров драйвера BDE. Для этого используется свойство params, представляющее собой обычный список. В нем необходимо задавать названия изменяемых параметров и их новые значения:
USERNAME=SYSDBA PASSWORD=masterkey
Значения параметров можно задавать как статически, так и динамически во время выполнения.
1.6 Как работает запрос
Теперь настало время разобраться с основными принципами работы запросов в приложениях баз данных Delphi. Главную роль в подготовке и диспетчеризации запросов SQL играет BDE. Непосредственную обработку запросов выполняет специальный элемент архитектуры процессора БД - система обработки запросов, которая идентифицирует набор данных запроса, выполняет проверку синтаксиса и, в зависимости от установленных значений параметров BDE, передает локальный вариант запроса стандартному драйверу соответствующей БД или адресует запрос серверу БД через систему драйверов SQL Links.
Инициатором запроса выступает приложение. Для создания и выполнения запросов предназначен компонент TQuery, который содержит текст запроса, умеет выполнять его, и инкапсулирует набор данных с результатом выполнения запроса. Этот набор данных можно использовать так же, как и любой другой набор данных, созданный при помощи компонента ТТаblе.
После получения команды на выполнение запроса компонент TQuery инициализирует процесс подготовки запроса к выполнению, который включает несколько этапов.
Основная задача подготовки запроса - установить связь между СУБД, которая будет выполнять запрос, и набором данных соответствующего компонента TQuery. Если это удалось сделать, то определяется способ выполнения запроса - локальный доступ через стандартный драйвер или передача текста запроса для выполнения серверу. При этом становится ясным, будет ли результат выполнения запроса редактируемым. После этого задаются значения для переменных параметров запроса.
Если запрос выполняется локально, то через стандартный драйвер он передается соответствующей СУБД, которая выполняет его. По установленной при подготовке запроса связи результат передается в набор данных приложения. Если запрос адресован серверу SQL, то подразумевается, что он имеет специфический синтаксис, присущий данному серверу. Поэтому вся специальная подготовка параметров запроса осуществляется на стороне сервера. BDE лишь обеспечивает передачу запроса и возврат результата выполнения набору данных приложения.
Если запрос имеет простую структуру, то его подготовка и выполнение может быть проведена ускоренно в один этап за iет использования специальной функции API BDE DbiQExecDirect.
Еще один способ выполнения запросов для серверов SQL - прямое обращение к функциям API соответствующего сервера. Это самый быстродействующий, но и самый трудоемкий для разработчика способ.