русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Операторы завершения транзакции


Дата добавления: 2015-07-09; просмотров: 726; Нарушение авторских прав


Оператор commit work используется для того, чтобы успешно завершить транзакцию с указанным именем. Все изменения, сделанные в завершаемой транзакции, становятся видны для всех пользователей. После завершения транзакции пользователю рекомендуется обновить снимки (оператор fix table).

Формат:

commit work Имя_транзакции;

Аргументы:

Аргумент Значение
Имя_транзакции Имя транзакции, результаты которой надо зафиксировать. Транзакция должна быть явно начата оператором begin work.

Другим оператором для завершения транзакции является оператор rollback work.

Если выполняется оператор rollback work, то все изменения в таблицах, включенных в транзакцию, потеряются (произойдет «откат»). При этом прерывается выполнение транзакции и аннулируются все изменения в данных, которые были произведены в этой транзакции. Все таблицы, которые были задействованы в транзакции (они были перечислены в операторе begin work), возвращаются к тому состоянию, в котором они были на момент начала транзакции.

Если транзакцию пользователя прервали по времени (слишком долгая транзакция или пользователь забыл завершить транзакцию), то перед продолжением работы необходимо выполнить оператор rollback work.

Формат:

rollback work Имя_транзакции;

Аргументы:

Аргумент Значение
Имя_транзакции Имя транзакции, результаты которой надо отменить. Транзакция должна быть явно начата оператором begin work.

 

В механизме транзакций поддерживается откат действий, произведенных операторами insert, delete, update, и не поддерживается откат действий, произведенных операторами create table, create index, drop index и т.д.

Примеры работы с операторами завершения транзакции

Приведем пример работы операторов commit work и rollback work.

Пример:

drop table TMP;



create table TMP
(
MSG char(50)
);

declare variable @nCode;

begin work my_wrk table BOOK;

@nCode = lastsqlerr();

if (@nCode != 0)
{
insert into TMP (MSG)
values ("Не удалось начать транзакцию " + @nCode);
quit;
}

delete from BOOK;

@nCode = lastsqlerr();

if (@nCode != 0)
{
insert into TMP (MSG)
values ("Удаление закончилось ошибкой № " + @nCode);
rollback work my_wrk;
quit;
}

commit work my_wrk;

@nCode = lastsqlerr();

if (@nCode != 0)
{
insert into TMP (MSG)
values ("Не удалось завершить транзакцию " + @nCode);
rollback work my_wrk;
quit;
}

insert into TMP (MSG)
values ("Данные успешно удалены");

Существенно, что механизм транзакций использует переменную часть таблиц для своей работы. Поэтому операции, которые «портят» переменную часть таблицы, не допустимы во время работы транзакций. Это оператор drop diff, удаляющий переменную часть таблицы и оператор pack table, переносящий данные из переменной части таблицы в постоянную часть.



<== предыдущая лекция | следующая лекция ==>
Оператор начала транзакции begin work | Оператор освобождения строк unlock


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.548 сек.