Создать итератор для обхода изменений
Создайте итератор, используемый для итерирования по содержимому набора изменений. При успехе *pp устанавливается для указания дескриптора итератора и возвращается SQLITE_OK. В противном случае, если произошла ошибка, *pp устанавливается в ноль, и возвращается код ошибки SQLite.
Следующие функции могут быть использованы для продвижения и запроса итератора набора изменений, созданного этой функцией:
Ответственность вызывающей стороны — в конечном итоге уничтожить итератор, передав его в sqlite3changeset_finalize(). Буфер, содержащий набор изменений (pChangeset), должен оставаться валидным до тех пор, пока итератор не будет уничтожен.
Предполагая, что BLOB набора изменений был создан одной из функций sqlite3session_changeset(), sqlite3changeset_concat() или sqlite3changeset_invert(), все изменения в наборе изменений, относящиеся к одному таблице, сгруппированы вместе. Это означает, что при итерации приложения через набор изменений с помощью итератора, созданного этой функцией, все изменения, относящиеся к одной таблице, посещаются последовательно. Нет возможности, что итератор посетит изменение, относящееся к таблице X, затем одно для таблицы Y, а затем позже посетит другое изменение для таблицы X.
Поведение sqlite3changeset_start_v2() и его потокового эквивалента может быть изменено путем передачи комбинации поддерживаемых флагов в качестве четвертого параметра.
Обратите внимание, что API sqlite3changeset_start_v2() все еще находится на стадии эксперимента и, следовательно, может быть изменен.
См. также списки Объектов, Констант и Функций.
SQLite is in the Public Domain.
https://sqlite.org/session/sqlite3changeset_start.html