
- •1. Основные понятия
- •1.1. Архитектура "клиент-сервер"
- •1.2. Сервер и удаленная бд
- •1.3. Средства работы с удаленными бд
- •2. Сервер InterBase
- •2.1. Бизнес-правила
- •2.2. Организация данных
- •2.3. Запуск сервера
- •2.4. Особенности приложения
- •3. Соединение с базой данных
- •3.1. Соединение с базой из программы ibConsole
- •3.2. Компонент Database
- •If Databasel.InTransaction then Databasel.Commit;
- •3.3. Компонент Session
- •Var Params: tStringList;
- •3.4. Соединение с базой данных из приложения
Var Params: tStringList;
begin
Params:=TStringList.Create;
try
Params.Add('SERVER NAME=d:\ibData\registration.gdb');
Params.Add('USER NAME=SYSDBA');
Params.Add('PASSWORD=masterkey');
Sessionl.AddAlias('ibData', 'INTRBASE', Params);
finally
Params.Free;
end;
end;
В ней создается псевдоним ibData для работы с удаленной БД InterBase. Для БД задано три параметра: путь, имя и пароль пользователя. Для определения параметров в приложении динамически создается список Params типа TStringList. Заполнение и удаление списка также выполнено динамически. При заполнении списка и создании псевдонима выполняется обработка исключительных ситуаций. При их возникновении в любом случае будет удален динамически созданный СПИСОК Params.
Процедура DeleteAlias (const Name: String) удаляет псевдоним, указанный параметром Name. Например:
procedure TForml.Button4Click(Sender: TObject);
begin
Sessionl.DeleteAlias(Editl.Text) ;
end;
Здесь удаляется псевдоним, имя которого указано в компоненте Editl. Если указанный псевдоним отсутствует, то процедура DeleteAlias не выполняет никаких действий.
Методы GetDriverNames И GetDriverParams обеспечивают получение информации о драйверах BDE и их параметрах, соответственно, а методы AddDriver и DeleteDriver — добавление и удаление драйверов.
3.4. Соединение с базой данных из приложения
Для соединения с БД из приложения разработчик должен создать соответствующую форму. В целом создание формы приложения для работы с удаленной БД не отличается от процесса создания формы для работы с локальной БД. Визуальные и невизуальные компоненты размещаются на форме и связываются между собой обычным способом.
Пусть на форме размещены сетка DBGridl, источник данных DataSourcel и набор данных Queryl. Напомним, что в качестве набора данных следует выбирать компонент Query и ему подобные, а не компонент Table.
Отличие формы для работы с удаленной БД заключается в том, что дополнительно организуется соединение с БД. С этой целью необходимо:
создать псевдоним БД;
разместить на форме компонент Database, установить ему нужные значения свойств и связать с набором данных.
Псевдоним для работы с удаленной БД удобно создать с помощью рассмотренной ранее программы BDE Administrator. Для сервера InterBase псевдоним имеет тип intrbase. Для псевдонима нужно задать следующие параметры:
имя пользователя user name — sysdba;
расположение БД server name — для локального сервера InterBase это путь к БД, для удаленного сервера этот путь прописан в файле hosts, размещенном в каталоге WINDOWS;
языковый драйвер LANGDRIVER — Pdox ANSI Cyrillic.
В качестве примера создадим псевдоним ibData для доступа к БД registration.gdb, размещенной в каталоге d:\ibDate. Параметры псевдонима показаны на рис. 10.5.
Собственно соединение с БД выполняется с помощью компонента Database, рассмотренного в предыдущем разделе. Разместим на форме компонент Databasel. Для соединения с БД, обозначенной псевдонимом ibData, свойствам компонентов Databasel и Queryl нужно установить значения, показанные в табл. 10.2.
Таблица 10.2
Свойства компонентов, используемых для соединения с БД
-
Компонент
Свойство
Значение
Примечание
Databasel
AliasName
ibData
Выбирается из списка
DatabaseName
ibDataBD
Вводится разработчиком
Queryl
DatabaseName
ibDataBD
Выбирается из списка
Соединение с БД устанавливается следующими способами:
через открытие набора данных Queryl;
путем установки значения True свойству Connected компонента Databasel.
Оба способа по своим результатам являются эквивалентными и взаимозависимыми. Так, при открытии набора данных, например, установкой значения True его свойству Active, свойство Connected компонента Database автоматически принимает это же значение.
Соединение с БД можно устанавливать как при разработке, так и при выполнении приложения
. Рис. 10.5. Параметры псевдонима БД