![]() |
|
|||
WebMoney: WMZ Z294115950220 WMR R409981405661 WME E134003968233 |
Visa 4274 3200 2453 6495 |
sqlite3_snapshot_open(D,S,P)
начинает новую или модернизирует существующую транзакцию для схемы S
соединения с базой данных D таким образом, что
транзакция относится к историческому образу
P, а не к новому изменению базы данных.
sqlite3_snapshot_open() вернет SQLITE_OK при успехе или соответствующий
код ошибки. Чтобы добиться успеха, соединение с базой данных не должно быть в режиме
autocommit, когда вызван
sqlite3_snapshot_open(D,S,P).
Если уже есть транзакция, открытая на схеме S, то у обработчика
базы данных не должно быть активных запросов
(операторы SELECT, которые были переданы
to sqlite3_step(), но не sqlite3_reset() или sqlite3_finalize()).
SQLITE_ERROR возвращен, если условие нарушено,
схема S не существует или если объект образа недействителен. Вызов sqlite3_snapshot_open() не откроется, если указанный образ
был переписан контрольной точкой.
В этом случае возвращен SQLITE_ERROR_SNAPSHOT. Если уже есть транзакция, открытая, когда эта функция вызвана, то та же
самая транзакция остается открытой (на том же самом образе базы данных), если
возвращено SQLITE_ERROR, SQLITE_BUSY или SQLITE_ERROR_SNAPSHOT.
Если другой код ошибки, например, SQLITE_PROTOCOL или SQLITE_IOERR
возвращены, то конечное состояние транзакции не определено.
Если вернется SQLITE_OK, транзакция теперь открыта на
снимке базы данных P. Вызов sqlite3_snapshot_open(D,S,P)
потерпит неудачу, если соединение с базой данных D не будет знать, что файл
базы данных для схемы S находится в режиме WAL.
Соединение с базой данных не могло бы знать, что файл базы данных находится в
режиме WAL,
если не было никакого предшествующего I/O на том соединении с базой данных
или если база данных попала в режим WAL
после нового I/O на соединении с базой данных.
Выполните "PRAGMA
application_id" для недавно открытого соединения с базой данных,
чтобы применять образы. sqlite3_snapshot_open()
работает только при использовании опции времени компиляции
SQLITE_ENABLE_SNAPSHOT.
Choose any three.
SQLite C Interface
Начните транзакцию чтения на историческом образе
int sqlite3_snapshot_open(sqlite3 *db, const char *zSchema,
sqlite3_snapshot *pSnapshot);