RussianLDP Рейтинг@Mail.ru
WebMoney: 
WMZ Z294115950220 
WMR R409981405661 
WME E134003968233 
Visa 
4274 3200 2453 6495 

Small. Fast. Reliable.
Choose any three.

SQLite C Interface

Отзывы уведомления об изменении данных

void *sqlite3_update_hook(sqlite3*, void(*)(void *,int ,char const *,
                          char const *,sqlite3_int64), void*);

sqlite3_update_hook() регистрирует функцию обратного вызова в соединении с базой данных, определенном первым аргументом, которая будет вызвана каждый раз, когда строка обновлена, вставлена или удалена в таблице rowid . Любой отзыв, установленный предыдущим запросом к этой функции для того же самого соединения с базой данных, отвергнут.

Второй аргумент это указатель на функцию, чтобы вызвать, когда строка обновлена, вставлена или удалена в таблице rowid. Первый аргумент отзыва это копия третьего аргумента sqlite3_update_hook(). Второй аргумент отзыва один из SQLITE_INSERT, SQLITE_DELETE или SQLITE_UPDATE, в зависимости от операции, которая заставила отзыв быть вызванным. Третий и четвертый аргументы отзыва содержат указатели на имя базы данных и имя таблицы, содержащей затронутую строку. Заключительный параметр отзыва rowid строки. В случае обновления это rowid после того, как обновление произойдет.

Перехватчик обновления не вызван, когда внутренние системные таблицы изменяются (то есть sqlite_sequence). Перехватчик обновления не вызван, когда меняются таблицы WITHOUT ROWID.

В текущем внедрении не вызван перехватчик обновления, когда противоречивые строки удалены из-за ON CONFLICT REPLACE. И при этом перехватчик обновления не вызван, когда строки удалены, используя truncate optimization. Исключения, определенные в этом параграфе, могли бы измениться в будущем выпуске SQLite.

Перехватчик обновления не должен делать ничего, что изменит соединение с базой данных, которое его вызвало. Любые действия, чтобы изменить соединение с базой данных должны быть отсрочены до окончания завершения sqlite3_step(), который вызвал обьновление. Обратите внимание на то, что sqlite3_prepare_v2() и sqlite3_step() изменяют их соединения с базой данных.

sqlite3_update_hook(D,C,P) вернет P от предыдущего запроса к тому же самому соединению с базой данных D или NULL для первого запроса D.

См. также sqlite3_commit_hook(), sqlite3_rollback_hook() и sqlite3_preupdate_hook().