![]() |
|
|||
WebMoney: WMZ Z294115950220 WMR R409981405661 WME E134003968233 |
Visa 4274 3200 2453 6495 |
Создайте новый объект сессии, приложенный к дескриптору базы данных db.
Если успешно, указатель на новый объект написан в *ppSession, и
SQLITE_OK возвращен. Если ошибка происходит, *ppSession установлен в NULL, а
код ошибки SQLite (например, SQLITE_NOMEM) возвращен. Возможно создать многократные объекты сессии, приложенные к дескриптору
единой базы данных. Объекты сессии, созданные этой функцией, должны быть удалены, используя
sqlite3session_delete()
до закрытия обработчика базы данных, к которому они присоединены.
Если обработчик базы данных закрывается прежде, чем объект сессии удален, то
результаты вызова любой функции модуля сессии, включая
sqlite3session_delete()
на объекте сессии не определены. Поскольку модуль сессии использует
sqlite3_preupdate_hook() API,
невозможно для запроса зарегистрировать перехватчик предварительного
обновления базы данных, у которой есть один или несколько приложенных
объектов сессии. И при этом невозможно создать объект сессии, приложенный к
дескриптору базы данных, для которой уже определяется перехватчик
перед обновлением. Результаты попытки любой из этих вещей не определены. Объект сессии будет использоваться, чтобы создать changesets для таблиц в
базе данных zDb, где zDb "main", "temp", или название приложенной базы
данных. Это не ошибка, если база данных zDb не присоединена к базе данных,
когда объект сессии создается.
Choose any three.
Session Module C Interface
Создайте новый объект сессии
int sqlite3session_create(
sqlite3 *db, /* Database handle */
const char *zDb, /* Name of db (e.g. "main") */
sqlite3_session **ppSession /* OUT: New session object */
);