
- •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. Соединение с базой данных из приложения
1.2. Сервер и удаленная бд
Удаленная БД, как и локальная, представляет собой совокупность взаимосвязанных таблиц. Однако данные этих таблиц, как правило, содержатся в одном общем файле. Как и в случае с локальной БД, для таблиц удаленной БД могут устанавливаться связи (отношения), ограничения ссылочной целостности, ограничения на значения столбцов и т. д.
Замечание
Для удаленных БД поле называется столбцом.
Для управления БД сервер использует:
триггеры;
генераторы;
хранимые процедуры;
функции, определяемые пользователем;
механизм транзакций;
механизм кэшированных изменений;
механизм событий.
Многие из перечисленных элементов обеспечиваются возможностями языка SQL сервера, в котором, по сравнению с локальной версией, имеются существенные особенности, рассматриваемые ниже.
1.3. Средства работы с удаленными бд
Система Delphi обеспечивает разработку приложений для различных серверов, предоставляя для этого соответствующие средства. Отметим, что многие изложенные ранее принципы разработки приложений и средства для работы с локальными БД относятся и к работе с удаленными БД. В частности, для разработки приложений используются такие компоненты, как источник данных DataSource, наборы данных Table и Query, сетка DBGrid и др.
Замечание
Для реализации реляционного способа доступа к удаленной БД необходимо использовать только средства языка SQL. Поэтому в качестве компонентов должны выбираться такие, как Query, StoredProc или UpdateSQL. Кроме того, для набора данных нельзя использовать методы, характерные для навигационного способа доступа, например, Next и Previous для перемещения текущего указателя или Edit, Insert, Append или Delete для изменения записей.
Напомним, что если при выполнении с помощью компонента Query модифицирующего БД запроса нет необходимости в получении результирующего набора данных, то этот запрос предпочтительнее выполнять с помощью метода ExecSQL. Например:
Queryl.Close;
Queryl.SQL.Clear;
Queryl.SQL.Add('DELETE FROM Personnel WHERE Position = 'Менеджер');
Queryl.ExecSQL;
Для работы с таблицами и запросами по-прежнему можно использовать такие программы, как Database Desktop и SQL Explorer.
Средства Delphi, предназначенные для работы с удаленными БД, можно разделить на два вида:
инструментальные средства;
компоненты.
К инструментальным средствам относятся специальные программы и пакеты, обеспечивающие обслуживание БД вне разрабатываемых приложений. В их числе могут быть выделены следующие средства:
InterBase Server Manager — программа управления запуском сервера InterBase;
IBConsole — консоль сервера InterBase;
SQL Monitor — программа отслеживания порядка выполнения SQL-запросов к удаленным БД.
Отметим, что в предыдущей версии сервера вместо программы IBConsole использовалась InterBase Windows Interactive SQL (WISQL). Кроме того, значительно упростилась программа InterBase Server Manager, а многие ее функции теперь реализованы в программе IBConsole.
Компоненты предназначены для создания приложений, выполняющих операции с удаленной БД. Перечислим наиболее важные из них:
Database — соединение с БД;
Session — текущий сеанс работы с БД;
StoredProc — вызов хранимой процедуры;
UpdateSQL — модификация набора данных, основанного на SQL-запросе;
DCOMConnection — DCOM-соединение;
компоненты страниц dbExpress и InterBase Палитры компонентов.
Отметим, что многие из названных компонентов, например, Database, UpdateSQL и Session, используются также при работе с локальными БД. Так, компонент Database позволяет реализовать механизм транзакций, как было показано в главе, посвященной навигационному способу доступа к данным. Однако наиболее часто эти компоненты применяются именно при работе с удаленными базами.
Часть компонентов, например, клиентский набор данных ClientDataSet и соединение с сервером DCOMConnection, предназначена для работы в трехзвенной архитектуре "клиент-сервер" ("тонкий" клиент) и используется для построения сервера приложений.
В основе операций, выполняемых с удаленными БД как с помощью инструментальных средств, так и программно, лежит язык SQL. Например, при создании таблицы с помощью программы IBConsole (в ее окне Interactive SQL) необходимо набрать и выполнить SQL-запрос (оператор) create table. Если создание таблицы осуществляется из приложения пользователя, то для этой цели используется набор данных Query, который выполняет такой же запрос. Различие заключается в основном в том, каким образом выполняется SQL-запрос к удаленной БД.
Итак, для удаленных БД разница между средствами, используемыми в приложении, и инструментальными средствами намного меньше, чем для локальных баз данных. Поэтому далее для удаленных БД использование инструментальных средств (на примере программы IBConsole) и создание приложений рассматриваются параллельно.