![]() |
|
|||
WebMoney: WMZ Z294115950220 WMR R409981405661 WME E134003968233 |
Visa 4274 3200 2453 6495 |
sqlite3_commit_hook() регистрирует функцию обратного вызова, которая будет
вызвана каждый раз, когда транзакция
коммитится. Любой отзыв, установленный предыдущим запросом
sqlite3_commit_hook(), для того же самого соединения с базой данных,
отвергнут. sqlite3_rollback_hook() регистрирует функцию обратного вызова,
которая будет вызвана каждый раз, когда транзакция
отменена.
Любой отзыв, установленный предыдущим запросом sqlite3_rollback_hook(),
для того же самого соединения с базой данных, отвергнут.
Через аргумент pArg проходят к отзыву. Если отзыв функции перехвата коммита
возвращает отличное от нуля значение, то передача
преобразовывается в обратную перемотку. Функции sqlite3_commit_hook(D,C,P) и sqlite3_rollback_hook(D,C,P)
возвращают аргумент P от предыдущего вызова
той же самой функции на том же самом соединении с базой
данных D или NULL для первого вызова каждой функции на D. Внедрение отзыва не должно делать ничего, что изменит соединение с
базой данных, которое вызвало отзыв. Любые действия, чтобы изменить
соединение с базой данных должны быть отсрочены до окончания завершения
sqlite3_step().
Обратите внимание на то, что управление любыми другими SQL-операторами,
включая операторы SELECT, или просто запрос
sqlite3_prepare_v2() и
sqlite3_step()
изменят соединения с базой данных. Регистрация функции NULL отключает отзыв. Когда хранимая процедура отзыва коммита возвращает ноль, операции
COMMIT позволяют обычно продолжаться.
Если перехватчик COMMIT
вернет отличное от нуля значение, то вызывается
ROLLBACK. Перехват обратной перемотки
вызван на обратную перемотку, которая следует из возврата не 0 перехватчиком
коммита, как это было бы с любой другой обратной перемоткой. В целях этого API транзакция, как говорят, была отменена, если явный
запрос "ROLLBACK" выполняется, или ошибка или ограничение заставляют
происходить неявную обратную перемотку.
Отзыв обратной перемотки не вызван, если транзакция автоматически отменена,
потому что соединение с базой данных закрывается.
Choose any three.
SQLite C Interface
Отзывы уведомления о коммите и об обратной перемотке
void *sqlite3_commit_hook(sqlite3*, int(*)(void*), void*);
void *sqlite3_rollback_hook(sqlite3*, void(*)(void *), void*);