- •Министерство образования российской федерации ростовский государственный экономический университет
- •Borland delphi
- •4.1 Страница Additional 23
- •4.2 Страница Dialogs 24
- •4.3 Страница System 25
- •4.4 Страница vbx 26
- •8.3 Компоненты работы с бд. 63
- •Введение
- •1 Borland Borland Delphi. Основные характеристики продукта
- •2 Среда программирования Delphi
- •2.1 Структура среды программирования
- •2.2 Главные составные части среды программирования
- •2.3 Дополнительные элементы
- •2.4 Стандартные компоненты
- •2.5 Подробнее об Инспекторе Объектов
- •2.6 Сохранение программы
- •2.7 TButton, исходный текст, заголовки и z-упорядочивание
- •3. Управление проектом
- •3.1 Проект Delphi
- •3.2 Пункт меню “File”
- •3.3 Управление проектом
- •3.4 Обзор других пунктов меню
- •3.4.1 Пункт меню “Edit”
- •3.4.2 Пункт меню “Menu”
- •3.4.3 Пункт меню “View”
- •3.4.4 Пункт меню “Compile”
- •4 Обзор Палитры Компонент
- •4.1 Страница Additional
- •4.2 Страница Dialogs
- •4.3 Страница System
- •4.4 Страница vbx
- •5 Свойства в Delphi
- •5.1 Управление свойствами визуальных компонент в режиме выполнения
- •6. Методы в Delphi
- •6.1 Создание методов с помощью визуальных средств
- •Interface
- •Implementation
- •6.2 Передача параметров
- •Interface
- •Implementation
- •7 События в Delphi
- •7.1 Понимание событий
- •7.2 Обработка сообщений Windows в Delphi
- •8 Работа с бд в Delphi.
- •8.1.2 Алиасы
- •8.1.3 Системная информация утилиты настройки bde (bdecfg)
- •8.2 УтилитаDatabaseDesktop
- •8.3 Компоненты работы с бд.
- •8.3.1 Класс TdataSet
- •8.3.1.1 Открытие и закрытие DataSet
- •8.3.2 Навигация (Перемещение по записям)
- •8.3.3 Поля
- •8.3.4 Работа с Данными
- •8.3.5 Основные понятия о TdataSource
- •8.3.5.1 Использование tDataSource для проверки состояния бд
- •8.3.5.2 Отслеживание состояния DataSet
- •8.3.6 Создание таблиц с помощью компонента tTable
- •8.3.7 Управление tdbGrid во время выполнения
- •9 Основные понятия о запросах (queries) и транзакциях
- •9.1 Основные понятия о tQuery
- •9.2 Свойство sql
- •9.3 TQuery и Параметры
- •9.4 Передача параметров через tDataSource
- •9.5 Специальные свойства Tquery
- •10 Создание таблиц с помощью sql-запросов
- •10.1 Создание таблиц с помощью sql
- •11 Управление соединением с базой данных при помощи компоненты tDataBase и объекта Tsession
- •11.1 Класс TdataBase
- •11.2 Создание постоянного соединения с базой данных
- •11.3 Определение собственного диалога при соединении с базой данных
- •11.4 Создание локального псевдонима базы данных
- •11.5 Изменение параметров при соединении
- •11.6 Управление транзакциями
- •11.7 Объект Session
- •11.7.1 Указание сетевого протокола при соединении с бд
- •12 Утилиты для Local InterBase
- •12.1 InterBase Interactive sql
- •12.1.1 Установка соединения
- •12.1.2 Создание новой базы данных
- •12.1.3 Получение информации о структуре базы данных
- •12.1.4 Выполнение sql запросов
- •12.2 InterBase Server Manager
- •12.2.1 Резервное копирование
- •Список использованных источников
11 Управление соединением с базой данных при помощи компоненты tDataBase и объекта Tsession
11.1 Класс TdataBase
Объект типа TDataBase не является обязательным при работе с базами данных, однако, он предоставляет ряд дополнительных возможностей по управлению соединением с базой данных. TDataBase служит для:
Создания постоянного соединения с базой данных
Определения собственного диалога при соединении с базой данных (опрос пароля)
Создания локального псевдонима базы данных
Изменения параметров при соединении
Управления транзакциями
TDataBase является невидимым во время выполнения объектом. Он находится на странице “Data Access” Палитры Компонент. Для включения в проект TDataBase нужно “положить” его на главное окно вашей программы.
11.2 Создание постоянного соединения с базой данных
Если вы работаете с базой данных, то перед началом работы выполняется процедура соединения с этой базой. В процедуру соединения, кроме прочего, входит опрос имени и пароля пользователя (кроме случая работы с локальными таблицами Paradox и dBase через IDAPI). Если в программе не используется TDataBase, то процедура соединения выполняется при открытии первой таблицы из базы данных. Соединение с базой данных обрывается, когда в программе закрывается последняя таблица из этой базы, это происходит в том случае, если свойство KeepConnectionsобъектаSessionустановлено в False, но об этом чуть позже. Теперь, если снова открыть таблицу, то процедура установки соединения повторится, и это может быть достаточно неудобно для пользователя. Чтобы соединение не обрывалось даже в том случае, когда нет открытых таблиц данной базы, можно использовать компонент типа TDataBase. В свойстве AliasName укажите псевдоним базы данных, с которой работает программа; в свойстве DatabaseName - любое имя (псевдоним БД), на которое будут ссылаться таблицы вместо старого псевдонима базы. Свойство Connected установите в True - процедура соединения с базой будет выполняться при запуске программы. И, наконец, свойство KeepConnection нужно установить в True (см. рис.1).
Рис.1: Свойства TDataBase в Инспекторе объектов
В нашем примере, после задания свойств DataBase1 нужно у всех таблиц, работающих с IBLOCAL в свойстве DatabaseName поставить Loc_IBLOCAL.
11.3 Определение собственного диалога при соединении с базой данных
По умолчанию при соединении с базой данных используется диалог опроса имени и пароля пользователя, показанный на рис.2
Рис.2: Диалог авторизации пользователя
При желании можно изменить внешний вид диалога или вообще его отменить. Для этого используются свойства и события класса TDataBase - LoginPrompt, ParamsиOnLogin.
Чтобы отключить опрос имени и пароля установите свойство LoginPrompt в False. При этом в свойстве Params требуется в явном виде (во время дизайна либо во время выполнения) указать имя и пароль пользователя. Например, в программе можно написать (до момента соединения с базой, например в событии для Form1 OnCreate):
DataBase1.LoginPrompt:=False;
DataBase1.Params.Clear;
DataBase1.Params.Add(‘USER NAME=SYSDBA’);
DataBase1.Params.Add(‘PASSWORD=masterkey’);
DataBase1.Connected:=True;
Чтобы использовать свой собственный диалог, в котором можно опрашивать не только имя и пароль пользователя, но и, например, сетевой протокол - создайте обработчик события OnLogin для DataBase1:
procedure TForm1.Database1Login(Database: TDatabase;
LoginParams: TStrings);
begin
Form2.ShowModal;
if Form2.ModalResult = mrOK then
with LoginParams do begin
Values['USER NAME'] := User_Name;
Values['PASSWORD'] := User_Pass;
end;
end;
Здесь Form2- новое окно-диалог для ввода имени и пароля,User_NameиUser_Pass- строки, куда сохраняются введенные имя и пароль.