|
OO API FB3 Освобождение объекта транзакции после rollback
|
|||
---|---|---|---|
#18+
Нужно ли вызывать release() после rollback ? ITransaction имеет интерфейс IReferenceCounted , следовательно нуждается в вызове release() после окончан6ия использования. Но, если смотреть в примеры, можно заметит следующий шаблон использования: Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Из чего можно заключить, что после commit вызывать release() не нужно. Но вызовов rollback в примерах нету. Напрашивается мысля, что действовать нужно но аналогии с commit . Или я не прав? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2017, 12:56 |
|
OO API FB3 Освобождение объекта транзакции после rollback
|
|||
---|---|---|---|
#18+
Tonal, commit и rollback уменьшают счётчик ссылок, release после них вызывать не нужно. release нужен если 1. была получена дополнительная ссылка на объект 2. commit\rollback завершился с ошибкой (например коннект уже помер) и нужно очистить память клиента PS Насколько я помню, rollback не даёт ошибок PPS С курсорами, запросами, аттачем - всё так же ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2017, 13:03 |
|
OO API FB3 Освобождение объекта транзакции после rollback
|
|||
---|---|---|---|
#18+
Tonal Код: plaintext 1.
hvladrelease нужен если .... commit\rollback завершился с ошибкой Результат функции проверять не нужно, там будет C++ exception брошен обязательно ? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2017, 13:27 |
|
OO API FB3 Освобождение объекта транзакции после rollback
|
|||
---|---|---|---|
#18+
AriochРезультат функции проверять не нужно, там будет C++ exception брошен обязательно ? там void в сигнатуре - так что только исключение. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2017, 13:31 |
|
OO API FB3 Освобождение объекта транзакции после rollback
|
|||
---|---|---|---|
#18+
AriochTonal Код: plaintext 1.
hvladrelease нужен если .... commit\rollback завершился с ошибкой Результат функции проверять не нужно, там будет C++ exception брошен обязательно ?Зависит от реального типа status. По-умолчанию там Firebird::CheckStatusWrapper, который не бросает исключение, т.е. нужно проверять сам status: Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2017, 13:37 |
|
OO API FB3 Освобождение объекта транзакции после rollback
|
|||
---|---|---|---|
#18+
hvladПо-умолчанию там Firebird::CheckStatusWrapperУточню - есть выбор между ThrowStatusWrapper и CheckStatusWrapper, первый сам проверяет статус и бросает исключение, второй этого не делает. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2017, 13:43 |
|
|
start [/forum/topic.php?fid=40&fpage=41&tid=1561409]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 146ms |
0 / 0 |