The Borland Database Engine (BDE). TDatabase
ActiveX Data Objects (ADO). TADOConnection
dbExpress. TSQLConnection
InterBase Express. TIBDatabase
10.4 Архитектура
.
Архитектура технологии доступа – иерархический набор драйверов и специализированных библиотек для работы с удаленными БД:
10.5 IBExpress
.
Библиотека компонентов реализующих технологию IBExpress расположена на вкладке палитры VCL «InterBase», и содержит наборы компонент для:
- соединения с БД(IBDatabase, IBTransaction);
- доступа к данным(IBTable, IBQuery, IBStoredProc, IBUpdateSQL, IBDataSet, IBSQL, IBClientDataSet);
- администрирования БД(IBDatabaseInfo, IBSQLMonitor, IBEvents, IBExtract).
10.6 Модуль данных
.
Не визуальный компонент реализуется как окно - контейнер для помещения в него компонент для работы с БД (TDataBase, TTable, TQuery, TStoredProc). А также, если необходимо, обработчиков событий этих компонентов и объектов полей соответствующих НД.
|
|
10.7 IBDataBase
.
Настройка основных свойств компонента IBDataBase подразумевает определение следующих параметров:
DataBaseName - для определения каталога и имени серверной базы данных;
Default Transaction – связный компонент транзакции, обязательно;
Params - определение параметров авторизации, задаваемых в редакторе компонента;
LoginPrompt - определяет режим авторизации, при значении true запрос диалога на ввод имени пользователя и пароля обязателен;
SQLDialect – определяет диалект, используемый при создании БД;
Connected – логическое свойство, показывающее активность соединения.
10.8 Редактор компонента
.
Задание имени пользователя (SYSDBA) и пароля (masterkey) выполняется в редакторе объекта, как показано рисунке:
Свойство AllowStreamedConnected(значение по умолчанию - true), определяет, что соединение автоматически будет устанавливаться, не зависимо от свойства Connected, при выполнении любого запроса к данным или БД.
Свойство IdleTimer определяет интервал ожидания перед автоматическим завершением соединения.
10.9 Наборы данных
.
Компоненты распространенных технологий:
BDE | InterBaseExpress | dbExpress | ADO |
TBDEDataSet TDBDataSet TTable TQuery TStoredProc | TIBCustomDataSet TIBDataSet TIBTable TIBQuery TIBStoredProc | TCustomSQLDataSet TSQLDataSet TSQLTable TSQLQuery TSQLStoredProc | TCustomADODataSet TADODataSet TADOTable TADOQuery TADOStoredProc |
Все технологии используют однотипные наборы компонентов.
|
|
10.10 IBTable
.
Компонент IBTable является наиболее простым способом обращения к конкретной таблице базы данных.
Основные свойства:
DatabaseName - имя БД, содержащую искомую таблицу;
TableName - имя таблицы, на стадии проектирования выбирается из выпадающего списка;
Active - указывает, открыта (true) или нет (false) данная таблица;
ReadOnly - если это свойство равно true, таблица открыта в режиме "только для чтения";
Fields - массив объектов TField;
Eof, Bof - эти свойства принимают значение true, когда указатель текущей записи расположен на последней или соответственно первой записи таблицы;
RecordCount - возвращает общее число записей набора данных.
10.11 Вопрос
.
Какая функция используется в приложении клиента для получения списка имен полей таблицы серверной БД?
1. Table1.Fields().
2. Table1.Fields[2].AsString.
3. Table1.Fields[*].AsString.
4. Table1.Fields[*].Value.
5. Нет правильного ответа.
10.12 Состояния НД
.
В каждый момент времени набор данных находится в определенном состоянии:
10.13 Методы управления НД
.
Методы компонента реализуют набор основных функций по управлению:
- состоянием компонента;
- навигацией данных;
- работе с данными.
Open и Close устанавливающие значения свойства Active равными True и False соответственно.
Append, Insert – переводят НД в режим добавления записи, или на место курсора или в конец набора.
Edit – переводит в режим редактирования.
Delete – удаление текущей записи.
Post, Cancel – закрытие НД с сохранением и без сохранения изменений.
Refresh - позволяет заново считать набор данных из БД или из файла.
10.14 Навигация по набору
.
Реализация принципа навигации по НД осуществляется чаще всего с помощью методов и свойств компонента TDataSet:
First – первая запись таблицы (DataModule1.Table1.First);
Last – последняя запись таблицы (DataModule1.Table1. Last);
Next – следующая запись таблицы (DataModule1.Table1.Next);
Prior – предыдущая запись таблицы (DataModule1.Table1.Prior);
RecNo – переход к записи по указанному номеру:
DataModule1.Table1.RecNo:=StrToInt(Edit1.Text).
10.15 Пример использования
.
Например, код обработки всех записей таблицы может выглядеть так:
Table1.First;
while not Table1.Eof do
begin
//выполняем действие над записью.
Table1.Next;
end;
10.16 События НД
.
По паре методов-обработчиков (до и после события) предусмотрено для следующих событий в наборе данных:
- открытие и закрытие набора данных;
- переход в режим редактирования;
- переход в режим вставки новой записи;
- сохранение сделанных изменений;
- отмена сделанных изменений;
- перемещение по записям набора данных;
- обновление набора данных.
10.17 Поля наборов
.
Поля наборов данных реализованы специальным классом TField.
Доступ из программы к индивидуальным полям записи осуществляется при помощи одного из следующих свойств или методов, каждый из которых принадлежат TDataSet:
property Fields[Index: Integer];
function FieldByName(const FieldName: string): TField;
Свойство FieldCount возвращает число полей в текущей структуре записи
property FieldCount;
10.18 Пример
.
Заполнение списка ListBox значениями поля:
procedure TForm1.ValuesClick(Sender: TObject);
var
i: Integer;
begin
ListBox2.Clear;
for i:= 0 to Table1.FieldCount - 1 do
ListBox.Items.Add(Table1.Fields[i].AsString);
end;
счетчик изменяется от нуля до FieldCount - 1.
10.19 TQuery
.
Основное назначение это выполнение практически любого SQL – оператора:
1. Выполнять операторы языка SQL для управления метаданными:
CREATE …
ALTER …
DROP …
2. Выполнять операторы управления данными:
INSERT …
UPDATE …
DELETE …
3. Выполнять оператор SELECT … для формирования локального набора данных, включая вызов хранимых процедур.
10.20 Вопрос.
|
|
Один компонент запроса используется для формирования нескольких наборов данных, при помощи выполнения оператора SELECT с различными значениями параметра. Возможно ли, выполнять следующий запрос и одновременно редактировать ранее сформированный набор данных?
10.21 Кэширование данных
.
Кэширование данных производится при помощи объекта:
IBClientDataSet1.SaveToFile('C:\PIS\CDset\CDS1.tss',dfBinary);
10.22 Содержание отчета
.
Название проекта, с перечислением реализуемых функций для каждого типа пользователей;
Описание состава проекта, основные модули и их назначение;
Изображение окна модуля данных проекта с наборами сформированных компонентов;
Настройка соединения с БД (пути, параметры), авторизация;
Описание основных компонентов их назначение и необходимые значения свойств (код используемых операторов);
Описание параметров управления транзакциями, результаты тестирования различных режимов видимости данных.
10.23 Вопросы по 5 лабораторной
.
Назначение, основные преимущества использования систем, построенных с применением клиент – серверных архитектур.
Технологии программной реализации многозвенной архитектуры, реализуемые средой разработки Delphi.
Наборы компонентов технологий доступа к серверным базам данных BDE и IBX, назначение основные свойства и методы.
Технологии реализации многозвенных архитектур, основные преимущества и недостатки.
Управление транзакциями, режимы видимости данных, уровни изоляции транзакций.
Реализация управления транзакциями в технологиях доступа IBExpress и BDE.
Серверные наборы данных, формирование, основные свойства, методы и события.
Основные механизмы управления данными в удаленных БД.
Понятие сетевого трафика, механизмы управления, оптимизации при работе в различных архитектурах.
10.24 Задания СРСП
.
1. Выбор и защита технологии доступа к БД;
2. Ответить на контрольные вопросы пятого модуля;
3. Провести отладку режимов видимости данных и обновления НД клиента;
4. Защитить отчет по пятой лабораторной работе;
|
|
5. Защитить отчет по разделу 3.4 курсовой работы [2];
6. Разработать пример вопроса тестового задания по теме раздела.
10.25 Задания СРС
.
1. Изучить методические указания к пятой лабораторной работе;
2. Ответить на примеры тестовых заданий к пятому модулю;
3. Изучить код модуля данных учебного примера Example;
4. Изучение механизма событий в многозвенных ИС;
5. Изучение системы помощи (HELP), утилиты InteractivSQL, операторы: CREATE EXCEPTION;
6. Изучить конспект 9,10 лекций [3];
10.26 Демонстрация
.
Создание проекта, включая модуль данных,
Компоненты соединения с БД.
Редактирование набора данных.
Кэширование набора данных
.
10.27 Тренировочный тест, 10 вопросов.
Ответы
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |