- •Федеральное агентство связи
- •Государственное образовательное учреждение высшего
- •Профессионального образования
- •«Поволжская государственная академия телекоммуникаций и информатики»
- •Разработка и эксплуатация удаленных баз данных
- •Конспект лекций
- •Введение
- •Раздел 1. Теория проектирования удаленных баз данных архитектуры удаленных бд Структурная схема терминов
- •Архитектуры бд
- •Локальная
- •Архитектура "файл-сервер"
- •Архитектура удаленных бд ("клиент-сервер")
- •Достоинства и недостатки различных архитектур приложений бд
- •Основные технологии доступа к данным Технология com (component object model)
- •Создание распределенных приложений на базе dCom
- •Технология corba (общая архитектура брокеров объектных запросов)
- •Технология midas
- •Доступ к данным по технологии ado
- •Технология com (component object model)
- •Составные части технологии com
- •Создание распределенных приложений на базе dCom
- •Технология midas
- •Доступ к данным по технологии ado
- •Введение в работу с удаленными бд
- •Организация сеанса связи с удаленной бд
- •Сервер interbase
- •Физическая организация базы данных формата InterBase
- •Типы данных в таблицах InterBase Типы столбцов таблиц формата InterBase
- •Организация сеанса связи с удаленной бд
- •Физическая организация удаленной бд
- •Создание и модификация таблиц Операции с таблицами
- •Операции с индексами
- •Графическое проектирование структуры бд Просмотры View
- •Создание бд
- •Создание и использование доменов
- •Компоненты доступа к данным. Запросы на выборку данных
- •Компоненты для доступа к данным и их отображения
- •Формирование запросов на выборку данных
- •Запросы на изменение данных Структурная схема терминов
- •Работа с записями
- •Методика изменения данных при помощи компонент
- •Использование хранимых процедур
- •Понятие и назначение хранимых процедур
- •Язык хранимых процедур
- •Использование триггеров и генераторов
- •Понятие триггера
- •Команды создания, изменения и удаления триггера
- •Генераторы - назначение, создание, установка начального значения
- •Функции, определяемые пользователем – назначение, создание, применение, порядок работы с ними
- •Сортировка, поиск и фильтрация в бд и выборках
- •Сортировка
- •Фильтрация записей
- •Организация данных в бд InterBase
- •Поиск в наборах данных
- •Манипулирование данными в выборках
- •Управление транзакциями и кэширование памяти
- •Механизм транзакций
- •Механизм кэшированных изменений
- •Перехват исключительных ситуаций и обработка ошибок
- •Понятие исключительных ситуаций
- •Обработка исключений
- •Формирование и вывод отчетов
- •Назначение и виды отчетов
- •Компоненты для формирования отчетов
- •Особенности проектирования клиентской части приложения в различных технологиях доступа
- •Особенности проектирования клиентской части приложения в различных технологиях доступа
- •Установка привилегий доступа к данным
- •Понятие привилегии, привилегии по умолчанию
- •Состав параметров при установлении привилегий
- •Назначение привилегий пользователю и группам пользователей
- •Отмена привилегий
- •Копирование, перенос и восстановление данных Создание резервной копии и восстановление бд
- •Восстановление транзакций
- •Регистрация новых пользователей
- •Копирование клиентской части приложения бд Структурная схема терминов
- •Утилита Install Shield
- •Определение файлов, объектов и элементов среды
- •Задание диалога при разархивировании
- •Создание прообраза копии диска
- •Создание копии на дискетах
Запросы на изменение данных Структурная схема терминов
Работа с записями
Добавление записи
Insert into <имя таблицы> (<список полей>)
Values (<список значений>)
Пример:
Insert into Pers (Num, Fam, Name, Sex) values (12, 'Иванов', 'Андрей', 'М')
Строки пишутся в апострофах.
Изменение записей
Update <имя таблицы> Set <список вида> <поле> = <выражение> where <условие>
Обеспечивает редактирование множества записей.
Пример:
Update Pers Set Fam = 'Иванова' where Fam = 'Петрова'
Удаление записей
Delete from <имя таблицы> where <условие>
Методика изменения данных при помощи компонент
Компонент UPDATESQL предназначен и используется для модификации наборов данных, доступных только для чтения, а также для подтверждения кэшированных изменений в компоненте TQUERY.
Набор данных TQUERY связывается с компонентом UPDATESQL через свойство UPDATEOBJECT. В качестве значения этого свойства выбирается имя компонента UPDATESQL, нанесенного на форму. Для набора данных QUERY нужно установить значение свойств:
CACHEDUPDATE = true;
REGUESTHIVE = true.
Роль компонента UPDATESQL заключается в выполнении SQL-запросов, обновляющих необходимые записи связанного с ним набора данных QUERY. При этом данный компонент позволяет одновременно хранить и выполнять три разных запроса:
SQL Запрос |
Свойство компонента |
UPDATE – обновление |
MODIFYSQL |
INSERT – вставка |
INSERTSQL |
DELETE – удаление |
DELETESQL |
Все тексты соответствующих запросов компонента UPDATESQL можно ввести вручную, но удобнее вызвать генератор с помощью двойного щелчка мыши на компоненте UPDATESQL и построить запрос визуально.
Запросы компонента UPDATESQL можно выполнить либо через вызов методов компонента DATABASE, либо через метод самого компонента UPDATESQL.
При подтверждении кэшированных изменений методом ApplyUpdates компонента DATABASE для указанного набора QUERY автоматически обрабатываются запросы соответствующего компонента UPDATESQL. Эти запросы выполняют сохранение кэшированных изменений своего набора данных.
Пример
DataBase1.ApplyUpdates ([Query1]);
Набор данных Query должен быть связан с компонентами DataBase и UpdateSQL через свойства DataBaseName и UpdateObject;
Подтверждение кэшированных изменений можно выполнить с помощью последовательного вызова методом SetParams, ExecSQL.
Метод SetParams устанавливает для изменяемой записи значение параметра соответствующего SQL-запроса.
Метод ExecSQL выполняет указанный запрос. Эти методы работают только с текущей записью, поэтому их вызовы должны быть произведены для каждой измененной записи набора.
Параметр Updatekind для обеих процедур определяет вид изменения записи:
ukModify – редактирование;
ukInsert – вставка;
ukDelete – удаление.
Т.к. эти методы должны вызываться для каждой измененной записи набора данных, то их вызов выполняют в обработчике события OnUpdaterecord.
Пример
Procedure TForm1.Query1Updaterecord(DataSet:TDataSet);
Var Updatekind:TUpdatekind;
UpdateAction:TUpdateAction;
Begin
UpdateSQL1.SetParams(Updatekind);
UpdateSQL1.ExecSQL(Updatekind);
UpdateAdition:=uaAppled;
End;
Значение uaAppled соответствует подтверждениям изменения записи.
Последовательный вызов методов SetParams и ExecSQL можно заменить вызовом метода Apply (UpdateKind:TUpdateKind), объединяющего их функциональность.