9_Обработка изменений в Delphi

advertisement
Обработка изменений данных в клиентском приложении
стр. 1
Обработка изменений данных из клиентского
приложения
Способы сохранений изменений:
1. через кэш-память
2. через хранимую процедуру
кэш-память
Работая с данными, пользователь манипулирует только копией базы данных,
помещенных в оперативную память, которая называется КЭШ. После выполнения, каких
– либо действий с данными выполняется метод Post_автоматический или принудительный
перенос изменений в базу данных.
Для работы с данными в Кеш-памяти используется специальный компонент
IBUpdateSQL
со странице InterBase, а для компоненты IBQuery есть свойство
CashedUpdate, которое указывает, будут ли данные изменений переноситься в базу данных
автоматически – тогда это False, или изменения сохраняются в КЭШ – тогда True. Для
внесения изменений для КЭШа в базу данных применяется метод ApplyUpdates.
При записи изменений участвует механизм транзакции, доступный через компонент
IBTransaction.
Для ссылки на содержащиеся в КЭШе значения полей, в SQL командах можно
использовать параметры, которые перед выполнением запроса меняют на
соответствующие значения.
! Параметр начинается с двоеточия; имя его совпадает с полем редактирования таблицы.
Можно использовать значение до редактирования (приставка old_)
! Для проверки были сделаны изменения, то есть, есть ли
данные в КЭШе, используются
свойства Update Pending. True – есть, False – ничего нет.
Способы работы с изменением данных через Кэш:
 Вносить изменения в базу данных после обработки каждой записи, то есть при
переходе на следующую запись (Alter Post –для Query)
 Вносить изменения в базу данных по окончанию работы приложения, или при
нажатии какой – либо кнопки (событие Click – для Button, событие Close для формы).
Этапы работы с КЭШ:
1. Создать транзакцию для управления базой данных.
2. Поместить специальный компонент для работы с КЭШ IBUpdateSQL.
3. Для IBQuery установить свойства:
- компонент для манипулирования КЭШем (Update Object);
- включить сохранение в КЭШ (CashedUpdate: = True).
4. Задать для компонента манипулирования КЭШем свойства:
- Текст SQL запроса по удалению записей (Delete SQL);
- Текст SQL запроса для добавления (Insert SQL);
- для изменения (Modify SQL).
5. Для нужного события, когда сохраняются данные в базу вызвать методы для
компонента IBQuery:
- запустить сохранение данных из КЭШа (ApplyUpdates);
- сохранить транзакцию после работы с КЭШ (метод Commit для компонента
IBTransaction).
Обработка изменений данных в клиентском приложении
стр. 2
Хранимые процедуры
Часто выполняемые операции с данными, хранящимися на стороне сервера
(удаление, изменение значений и добавление). Удобней организовать в базе данных в виде
хранимой процедуры и, не создавая ее, обращаться с клиентской стороны.
Этапы работы с хранимыми процедурами
1. На стороне сервера создать элемент базы данных (процедуру)
2. В клиентском приложении для связи с хранимой процедурой в модуль данных
3.
4.
5.
6.
7.
помещается специальный компонент IBStoredproc
(страница InterBase)
Основные свойства:
Database – имя компонента базы данных
StoredprocName – имя хранимой процедуры
Params – входные, выходные параметры процедуры (только для просмотра)
Программным путем передать данные как входные параметры хранимой процедуры
при помощи метода ParamByName:
DataModule2. St_group. ParamByName (‘New_name’). AsString:= Edt_name. Text;
После того как передали входные значения в процедуру необходимо выполнить метод
Prepare по подготовке хранимой процедуры на выполнение:
DataModule2. St_group. Prepare;
Запустить процедуру на выполнение метода ExecProc:
DataModule2. St_group. ExecProc;
После выполнения хранимой процедуры, сервер должен завершить транзакцию с
сохранением методом Commit:
DataModule2. Tr_dek. Commit;
Сохранение транзакции приводит к автоматическому закрытию доступа к таблице
базы данных. Открыть ее можно методом Open:
DataModule2. Tb_group. Open;
Закладки в наборе данных
Закладка – указатель на текущую запись в наборе данных. Помогает в любой момент
вернутся в эту запись.
Для хранения закладки Delphi имеет специальный тип данных TBookMark. Хранящийся в
модуле DB.
!!!В наборе данных можно использовать несколько разных закладок.
Действия, совершаемые с закладками:
1. Установка закладки, то есть сохранение номер текущей записи в переменную.
(Имя закладки:=Имя набора.GetBookMark)
2. Переход к закладке, то есть установка указателя текущей записи, номер которой
сохранен в переменную.
(Имя набора.GotoBookMark(Имя переменной))
3. Удаление закладки, то есть отчистка переменной.
(Имя набора.FreeBookMark(Имя закладки))
4. Проверка установки закладки. (Имя набора.BookMarkValid(Имя закладки))
Download