Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Организация транзакции. [D6, 2000]


pathfinder ©   (2006-01-12 11:30:00) 

Подскажите пожалуйста корректна ли данная конструкция транзакции и есть ли смысл вручную начинать и заканчивать ее?
             adoconnection1.BeginTrans;
            try
             adoquery2.ExecSQL;
             adoconnection1.CommitTrans;
             messagedlg('OK', mtinformation, [MBOK], 0);
            except
             adoconnection1.RollbackTrans;
             messagedlg('ERROR', mtError, [mbok], 0);
            end;

(adoquery2.sql-"update b31 set b31passw=:PIN where b31p002=:CN")

Заранее спасибо.


Johnmen   (2006-01-12 11:42:00) [1]

Сообщение об ошибке появится независимо ни от чего, кроме невозможности выполнить запрос.

>а если сделать так:

сделай...:)


pathfinder   (2006-01-12 11:37:00) [2]


> Johnmen ©

просто я подумал, что если запрос не выполняется, то появляется сообщение об ошибке, а если транзакция неявная, то нет.

а если сделать так:

           try
            adoquery2.ExecSQL;
            messagedlg('OK', mtinformation, [MBOK], 0);
           except
            messagedlg('ERROR', mtError, [mbok], 0);
           end;
?


Johnmen   (2006-01-12 11:34:00) [3]

Корректна.
Особого смысла "вручную начинать и заканчивать" нет, ибо запрос один, он либо выполнится, либо нет. (Транзакция стартанёт и закончится неявно).


pathfinder   (2006-01-12 11:33:00) [4]

p.s.
используемая субд oracle 8


Наверх

Титульная страница Поиск, карта сайта Написать письмо