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

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

D6, ADO, управление транзакциями......


Dmitr ©   (2002-05-22 09:21:00) 

Подскажите пожалуйста...
Трех уровневая модель, посылаю с клиента на сервер второго уровня текст запроса (INSERT, DELETE, UPDATE) в ADOQuery и выполняю ExecSQL
///////////////////
ADOConnection1.BeginTrans;
try
Query.SQL.Clear;
Query.SQL.Add(Stringlist.Strings[i]);
Query.ExecSQL;
except
ADOConnection1.RollbackTrans;
end;

ADOConnection1.CommitTrans;
///////////////////
Почему-то ингода на INSERT вылетает ошибка - нет активной транзакции т.е. не выполняется ADOConnection1.CommitTrans;


Shaman_Naydak   (2002-05-22 13:50:00) [1]

ADOConnection1.CommitTrans;
надо затащить после ExecSQL, до except

На инсерт ты видимо пытаешься вставить дубликатную запись,
срабатывает except блок, в нем ты откатываешь транзакцию, но и гасишь исключение, поэтому выполняется коммит, который справедливо тебя посылает
Удачи


Наверх

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