Quantcast
Channel: DA-SOFT Technologies - Forum
Viewing all articles
Browse latest Browse all 1040

Subject: Повторный запуск транзакции - by: DmitriyMarkov

$
0
0
Добрый день. Заметил одну интересную проблему при работе с компонентами: мне никто не запрещает делать Transaction.StartTransaction хоть 10 раз. При этом если сделать вот так [code]Transaction.StartTransaction ...какие-то действия Transaction.StartTransaction ...какие-то действия[/code] То с большой долей вероятности вторая группа действий закончится с ошибкой. В частности в FB например иногда ошибок не бывает, но вылетает скажем DeadLock и указывает номер транзакции. При этом AutoCommit выключен, включён только AutoStart. Т.е. по сути мне даже стартовать транзакцию не надо. В нужный момент всё само запустится. Но даже при таком раскладе иногда бывают случаи когда выполняется следующий код. [code]If not Transaction.Active then Transaction.StartTransaction. ...Какие-то действия. [/code] И далее действия которые по сути могут породить старт транзакции приводят к тому что транзакция запускается и опять же получается ошибка. Также к проблемам у меня приводил вот такой код [code] Transaction.CommitRetaining; Transaction.StartTransaction; [/code] Я в принципе понимаю, то что транзакция не закрывается, но либо тогда чтобы внутри не выполнялся старт либо как-то ещё сигнализировать о том что есть проблема. Можно включить проверку на двойной старт транзакции или сделать с вашей стороны проверку что если траназакция запущена, то не надо выполнять повторно старт транзакции? P.S. а всё потому что перешёл с FIBPlus на AnyDAC. И перевод проекта не проходит даром, вылазит куча проблем с транзакциями.

Viewing all articles
Browse latest Browse all 1040

Latest Images

Trending Articles



Latest Images