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

Small. Fast. Reliable.
Choose any three.

Session Module C Interface

Константы, переданные обработчику конфликта

#define SQLITE_CHANGESET_DATA        1
#define SQLITE_CHANGESET_NOTFOUND    2
#define SQLITE_CHANGESET_CONFLICT    3
#define SQLITE_CHANGESET_CONSTRAINT  4
#define SQLITE_CHANGESET_FOREIGN_KEY 5

Значения, которые могут быть переданы как второй аргумент обработчику конфликта.

SQLITE_CHANGESET_DATA
Обработчик конфликта вызван с CHANGESET_DATA как второй аргумент, обрабатывая изменение DELETE или UPDATE, если строка с необходимыми областями PRIMARY KEY присутствует в базе данных, но одна или несколько других (не первичный ключ) полей, измененные обновлением, не содержат ожидаемые значения "before".

Противоречивая строка в этом случае является строкой базы данных с соответствующим первичным ключом.

SQLITE_CHANGESET_NOTFOUND
Обработчик конфликта вызван с CHANGESET_NOTFOUND как второй аргумент, обрабатывая изменение DELETE или UPDATE, если строка с необходимыми областями PRIMARY KEY не присутствует в базе данных.

В этом случае нет никакой противоречивой строки. Результаты sqlite3changeset_conflict() API не определены.

SQLITE_CHANGESET_CONFLICT
CHANGESET_CONFLICT передается как второй аргумент обработчику конфликта, обрабатывая изменение INSERT, если операция привела бы к двойным значениям первичного ключа.

Противоречивая строка в этом случае это строка базы данных с соответствующим первичным ключом.

SQLITE_CHANGESET_FOREIGN_KEY
Если обработка внешнего ключа позволена, и применение changeset оставляет базу данных в состоянии , содержащем нарушения внешнего ключа, обработчик конфликта вызван с CHANGESET_FOREIGN_KEY как второй аргумент точно однажды перед тем, как changeset передается. Если обработчик конфликта возвращает CHANGESET_OMIT, изменения, включая те, которые вызвали ограничительное нарушение внешнего ключа, передаются. Если это возвращает CHANGESET_ABORT, changeset отменен.

Никакая информация о строке не обеспечивается. Единственная функция, которая может обратиться к поставляемому дескриптору sqlite3_changeset_iter, это sqlite3changeset_fk_conflicts().

SQLITE_CHANGESET_CONSTRAINT
Если какое-либо другое ограничительное нарушение происходит, применяя изменение (то есть, UNIQUE, CHECK или NOT NULL), обработчик конфликта вызван с CHANGESET_CONSTRAINT как второй аргумент.

В этом случае нет никакой конфликтной строки. Результаты sqlite3changeset_conflict() API не определены.