Начало добавления изменения в группу изменений
int sqlite3changegroup_change_begin( sqlite3_changegroup*, int eOp, const char *zTab, int bIndirect, char **pzErr );
Этот API используется совместно с другими API sqlite3changegroup_change_xxx() для поочерёдного добавления изменений в объект группы изменений. Чтобы добавить отдельное изменение, вызывающий код должен:
1. Вызвать sqlite3changegroup_change_begin(), чтобы указать тип изменения (INSERT, UPDATE или DELETE), затронутую таблицу и то, следует ли пометить изменение как косвенное.
2. Вызвать sqlite3changegroup_change_int64() или одну из четырёх других функций для работы со значениями — _null(), _double(), _text() или _blob() — один или несколько раз, чтобы задать значения old.* и new.* для создаваемого изменения.
3. Вызвать sqlite3changegroup_change_finish(), чтобы завершить добавление изменения в группу или полностью отменить его.
Первый аргумент этой функции должен быть указателем на существующий объект группы изменений, в который будет добавлено изменение. Второй аргумент должен иметь значение SQLITE_INSERT, SQLITE_UPDATE или SQLITE_DELETE. Третий аргумент — имя таблицы, которую затрагивает изменение, а четвёртый — логический флаг, указывающий, следует ли пометить изменение как «косвенное» (если bIndirect не равен нулю) или как прямое (если bIndirect равен нулю).
После успешного вызова этой функции её нельзя вызывать повторно для того же объекта группы изменений, пока не будет вызвана sqlite3changegroup_change_finish(). В противном случае возникнет ошибка SQLITE_MISUSE.
Объект группы изменений, переданный в качестве первого аргумента, уже должен быть настроен с данными схемы для указанной таблицы. Настроить его можно вызвав sqlite3changegroup_schema() с базой данных, содержащей эту таблицу, или sqlite3changegroup_add() с набором изменений, содержащим эту таблицу. Если на момент вызова этой функции для указанной таблицы не настроена схема объекта группы изменений, возвращается SQLITE_ERROR.
В случае успеха возвращается SQLITE_OK. В противном случае, если произошла ошибка, возвращается код ошибки SQLite. В этом случае, если аргумент pzErr не равен NULL, значение (*pzErr) может быть установлено в указатель на буфер, содержащий завершаемое нулевым символом сообщение об ошибке на английском языке в формате utf-8. Вызывающий код должен впоследствии освободить этот буфер с помощью sqlite3_free().
См. также списки объектов, констант и функций.
SQLite is in the Public Domain.
https://sqlite.org/session/sqlite3changegroup_change_begin.html