int sqlite3_snapshot_get(sqlite3 *db, const char *zSchema, sqlite3_snapshot **ppSnapshot);
sqlite3_snapshot_get(D,S,P) пытается заставить новый объект sqlite3_snapshot сделать запись текущего состояния схемы S в соединении с базой данных D. При успехе sqlite3_snapshot_get(D,S,P) пишет указатель на недавно созданный объект sqlite3_snapshot в *P и вернет SQLITE_OK. Если нет уже прочитанной транзакции, открытой на схеме S, когда эта функция вызвана, она открыта автоматически.
Следующее должно быть верным для этой функции, чтобы она работала. Если какое-либо из следующих заявлений ложно, когда вызывают sqlite3_snapshot_get(), SQLITE_ERROR возвращен. Окончательное значение *P не определено в этом случае.
Эта функция может также возвратить SQLITE_NOMEM. Если это вызывают с обработчиком базы данных в режиме autocommit, но происходит сбой по некоторой другой причине, открыта ли транзакция на схеме S, не определено.
Объект sqlite3_snapshot, возвращенный от успешного вызова sqlite3_snapshot_get(), должен быть освобожден, используя sqlite3_snapshot_free(), чтобы избежать утечки памяти.
sqlite3_snapshot_get() доступен только когда применен выбор времени компиляции SQLITE_ENABLE_SNAPSHOT.