![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Подтверждение транзакции [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