Постоянные значения, возвращаемые обработчиком конфликтов
#define SQLITE_CHANGESET_OMIT 0 #define SQLITE_CHANGESET_REPLACE 1 #define SQLITE_CHANGESET_ABORT 2
Обработчик конфликтов должен вернуть одно из следующих трех значений.
- SQLITE_CHANGESET_OMIT
- Если обработчик конфликтов возвращает это значение, никаких специальных действий не выполняется. Изменение, вызвавшее конфликт, не применяется. Модуль сессий переходит к следующему изменению в наборе изменений.
- SQLITE_CHANGESET_REPLACE
- Это значение может быть возвращено только в том случае, если второй аргумент обработчика конфликтов был SQLITE_CHANGESET_DATA или SQLITE_CHANGESET_CONFLICT. В противном случае все примененные изменения отменяются, и вызов sqlite3changeset_apply() возвращает SQLITE_MISUSE.
Если CHANGESET_REPLACE возвращается обработчиком конфликтов SQLITE_CHANGESET_DATA, то конфликтная строка либо обновляется, либо удаляется, в зависимости от типа изменения.
Если CHANGESET_REPLACE возвращается обработчиком конфликтов SQLITE_CHANGESET_CONFLICT, то конфликтная строка удаляется из базы данных, и предпринимается вторая попытка применить изменение. Если эта вторая попытка завершается неудачно, исходная строка восстанавливается в базе данных перед продолжением.
- SQLITE_CHANGESET_ABORT
- Если возвращается это значение, все примененные до этого изменения отменяются, и вызов sqlite3changeset_apply() возвращает SQLITE_ABORT.
См. также списки Объектов, Постоянных значений и Функций.
SQLite is in the Public Domain.
https://sqlite.org/session/c_changeset_abort.html