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

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

Подтверждение транзакции [D6, IB6.x]


Jaxtor ©   (2003-04-16 10:17:00) 

У меня есть набор данных типа IBDataSet. Даю команду Insert.
Затем делаю ExecSQL. CommitRetaining нигде не делаю. Но транзакция все-таки подтверждается при закрытии программы.
Какие могут быть причины?


Jaxtor   (2003-04-16 14:45:00) [1]

>Max Zyuzin Твой совет сработал! Правда я использовал свойство
InTransaction.


Jaxtor   (2003-04-16 12:02:00) [2]

IBSQL - нет такого компонента в моей программе.


MsGuns   (2003-04-16 11:47:00) [3]

Маленькая добавка.
К такой транзакции не должно быть привязано ни одного TIBSQL


MsGuns   (2003-04-16 11:44:00) [4]

TIBTransaction.AutoStopAction := saRollBack.
Делает откат, если закрывется последний НД в ее контексте, а не было ни подтверждения, ни отмены.


Соловьев   (2003-04-16 11:43:00) [5]


> Делаю Commit - подтверждается транзакция. Не делаю - не
> подтверждается.

приучай пользователей думать... А то они запутаются...


Jaxtor   (2003-04-16 11:37:00) [6]

Да все правильно. Но мне хотелось бы самому управлять транзакциями. Делаю Commit - подтверждается транзакция. Не делаю - не подтверждается.


Max Zyuzin   (2003-04-16 11:35:00) [7]

>Jaxtor © (16.04.03 11:31)
Все равно не вижу проблеммы, ставишь на OnCloseQuery у главного окна проверку...
if MyTransaction.IsActive then MyTransaction.RollBack;
и усего делов...


Соловьев   (2003-04-16 11:35:00) [8]


> А у меня получается, что пользователь не нажал "Подтвердить",
> а транзакция подтверждается.

а чем это отличается от того что он вышел? Выдавай ему месагу, что он не подтвердил, хочет он все-таки подтвердить или нет. И делай то что он пожелает...


Jaxtor   (2003-04-16 11:31:00) [9]

Max Zyuzin> Откат я буду ставить в случае ошибки при транзакции.
У меня в программе такой механизм: если нажал пользователь кнопку "Подтвердить", транзакция подтверждается. Не нажал - транзакция не подтверждается. А у меня получается, что пользователь не нажал "Подтвердить", а транзакция подтверждается.


kravchuk   (2003-04-16 11:11:00) [10]

может TIBTransaction.AutoStopAction ?


Jaxtor   (2003-04-16 10:38:00) [11]

>Можешь SQL монитором посмотреть
А я тут прочитал, что SQL монитор работает только для соединения
через BDE.


Max Zyuzin   (2003-04-16 10:32:00) [12]

>Jaxtor © (16.04.03 10:25)
А в чем собственно вопрос??? Не нравится факт что при закрытии программы подтверждается транзакция?? Ну дык ставь на закрытие откат всех транзакций...


Alexandr   (2003-04-16 10:31:00) [13]

а ну да...
Или где у тебя autocommit стоит.
Можешь SQL монитором посмотреть


Соловьев   (2003-04-16 10:29:00) [14]


> У меня есть набор данных типа IBDataSet. Даю команду Insert.
> Затем делаю ExecSQL

Post;


Jaxtor   (2003-04-16 10:25:00) [15]

И где же там это находится? В каких свойствах IBDataBase?
Default Transaction?


Alexandr   (2003-04-16 10:18:00) [16]

компонет IBDatabase


Наверх

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