Small. Fast. Reliable. Choose any three.
Session Module C Interface
Флаги для sqlite3changeset_apply_v2
#define SQLITE_CHANGESETAPPLY_NOSAVEPOINT 0x0001
#define SQLITE_CHANGESETAPPLY_INVERT 0x0002
#define SQLITE_CHANGESETAPPLY_IGNORENOOP 0x0004
#define SQLITE_CHANGESETAPPLY_FKNOACTION 0x0008
Следующие флаги могут передаваться через 9-й параметр
sqlite3changeset_apply_v2 и
sqlite3changeset_apply_v2_strm:
- SQLITE_CHANGESETAPPLY_NOSAVEPOINT
- Обычно, модуль сессий прилагает все операции, выполненные единственным
обращением к apply_v2() или apply_v2_strm(), в
SAVEPOINT. SAVEPOINT передается, если
changeset или patchset успешно применены или отменены, если ошибка
происходит. Определение этого флага заставляет модуль сессий опускать эту
точку сохранения. В этом случае, если у вызывающего есть открытая транзакция
или точка сохранения, когда вызвана apply_v2(),
это может вернуть частично примененный changeset, отменив его.
- SQLITE_CHANGESETAPPLY_INVERT
- Инвертируйте changeset прежде, чем применить его. Это эквивалентно
инвертированию changeset, используя sqlite3changeset_invert()
прежде, чем применить его. Ошибка определить этот флаг с patchset.
- SQLITE_CHANGESETAPPLY_IGNORENOOP
- Не вызывайте отзыв обработчика конфликта ни для каких изменений, которые
на самом деле не изменили бы базу данных, даже если бы они были применены.
Это означает, что обработчик конфликта не вызван для:
- удаления, если удаляемая строка не может быть найдена
- изменения обновления, если измененные области уже установлены в их новые
значения в противоречивой строке
- изменения вставки, если все области противоречивой строки
соответствуют вставляемой строке
- SQLITE_CHANGESETAPPLY_FKNOACTION
- Если этот флаг задан,
все ограничения внешнего ключа в целевой базе данных ведут себя, как будто
они были объявлены с "ON UPDATE NO ACTION ON DELETE NO ACTION",
даже если они на самом деле CASCADE, RESTRICT, SET NULL или SET DEFAULT.
|