Programming: Delphi
Иллюстрированный самоучитель по Delphi 7 для профессионалов
Компонент TIBDatabase
Так как для доступа к базе данных компонентам InterBase Express
не требуется BDE, то для создания соединения используется всего одно свойство
DatabaseName. В нем необходимо указать полный путь (включая имя сервера) к выбранному файлу БД с расширением gdb. Для этого можно воспользоваться стандартным диалогом выбора файла при щелчке на кнопке свойства в Инспекторе объектов.
Компонент имеет собственный редактор, который позволяет задать значения основных свойств, обеспечивающих соединение с базой данных (рис. 18.1).
Рис. 18.1. Редактор компонента
TIBDatabase
Настройка соединения проводится следующим образом.
На панели Connection выбирается требуемый
сервер InterBase (локальный или доступный удаленно), затем в списке Protocol
определяется используемый сетевой протокол и при помощи кнопки Browse
выбирается файл базы данных.
На панели Database Parameters задаются
имя пользователя, его пароль и роль. Также можно выбрать и набор шрифтов для
языковой адаптации приложения (список Character Set).
Для задания вводимых при подключении параметров
(имя пользователя, пароль, схема, роль и т. д.) также можно использовать свойства
Params и LoginPrompt.
Путь к файлу базы данных задается свойством
Соединение включается и отключается свойством
При этом свойство
управляет включением соединения при запуске
приложения и служит дополнительным предохранителем. При значении
False свойство запрещает открытие соединения при запуске приложения,
даже если свойство Connected имело значение
True. Так как часто приложение отлаживается
на тестовой базе данных, а используется на реальной, то неверный путь в свойстве
DatabaseName и не отключенное на этапе
разработки свойство connected приведет
к возникновению ошибки открытия соединения при запуске приложения на другом
компьютере.
Параметры соединения, которые нельзя задать
свойствами, устанавливаются свойством
в котором в каждой строке задается имя параметра
и затем через знак равенства — его значение. Наиболее распространенный пример
использования свойства Params — задание
имени пользователя и его пароля:
Свойство
позволяет получить доступ к отдельным параметрам
соединения, не обращаясь к свойству Params.
Примечание
Полный список индексов всех возможных параметров
соединения Interbase можно найти в файле \Delphi7\Source\Vcl\IBHeader.pas.
Если соединение настроено правильно, метод
возвращает значение True,
иначе — False. Свойство
задает временной интервал до отключения неиспользуемого
соединения.
В компоненте
TiBDatabase отсутствуют средства управления транзакциями, которые вынесены
в отдельный компонент TiBTransaction (см.
ниже).
Свойство
позволяет задать транзакцию по умолчанию. При
этом все компоненты с наборами данных, использующие данное соединение автоматически,
начинают применять этот компонент транзакции. Изменяя значение этого свойства,
можно в одном соединении работать с несколькими транзакциями.
Общее число связанных с данным соединением транзакций
возвращает свойство
а их полный перечень содержится в индексированном
списке свойства
Добавить к списку используемых новую транзакцию
можно при помощи метода
Отменить связь между соединением и компонентом
транзакции позволяет метод
Но можно поступить и более радикально. Метод
отменяет связи со всеми транзакциями.
Используемый в методе
RemoveTransaction индекс транзакции может быть найден методом
а метод
возвращает транзакцию по умолчанию.
С компонентом соединения можно связать произвольное
число объектов, отслеживающих возникновение событий в базе данных
InterBase. Для этого используется метод
который связывает с соединением либо интерфейс
IIBEventNotifier, либо объект TIBEvents.
Парный ему метод
разрывает связь соединения с объектом-обработчиком
событий. Свойство
type
TTraceFlag
= (tfQPrepare, tfQExecute, tfQFetch, tfError, tfStmt,
tfConnect,
tfTransact, tfBlob, tfService, tfMisc);
TTraceFlags
= set of TTraceFlag;
property TraceFlags:
TTraceFlags;
позволяет управлять сведениями о выполнении
запросов, возвращаемыми компонентом TSQLMonitor
(см. ниже описание этого компонента).
Группа методов позволяет судить о реальном состоянии
соединения во время выполнения. Все они в случае неудачи проверки генерируют
исключение
Методы
и
проверяют, функционирует или нет соединение.
Метод
проверяет, заполнено ли свойство DatabaseName.
Компонент TiBDatabase
позволяет выполнять некоторые операции с метаданными базы данных.
При помощи метода
можно создавать новые базы данных, включая создание
файла базы данных. Все параметры новой базы данных, которые разработчик посчитает
нужным указать явно, должны быть включены в список свойства
Params.
Имя файла новой базы данных должно быть указано
в свойстве
удаляет существующую базу данных, путь к которой
указан свойством
Список List
имен таблиц, имеющихся в базе данных, возвращает метод
При этом параметр
SystemTables управляет включением в список имен системных таблиц.
Метод
аналогичным образом возвращает список полей
для таблицы, заданной параметром TableName.
Методы-обработчики событий компонента
TiBDatabase представлены в табл. 18.1.
Таблица 18.1. Методы-обработчики
событий компонента TiBDatabase
Объявление
|
Тип
|
Описание
|
property
Af terConnect: TNotifyEvent;
|
|
Выполняется после открытия соединения
|
property
AfterDisconnect: TNotifyEvent;
|
|
Выполняется после закрытия соединения
|
property
Bef oreConnect: TNotifyEvent;
|
|
Выполняется перед открытием соединения
|
property
BeforeDisconnect: TNotifyEvent;
|
|
Выполняется перед закрытием
соединения
|
property
OnDialectDowngradeWarning: TNotifyEvent;
|
|
Выполняется в случае изменения
диалекта SQL при открытии соединения
|
property
OnldleTimer: TNotifyEvent;
|
|
Вызывается по истечении времени,
заданного свойством
dleTimer
|
TDatabaseLoginEvent
= procedure (Database : TiBDatabase; LoginParams: TStrings) of object;
property
OnLogin: TDatabaseLoginEvent ;
|
|
Вызывается для регистрации пользователя
при открытии соединения
|
Назад | Оглавление | Вперёд
При перепечатке любого материала
с сайта, видимая ссылка на источник www.warayg.narod.ru
и все имена, ссылки авторов обязательны.
© 2005
|