RussianLDP Рейтинг@Mail.ru
WebMoney: 
WMZ Z294115950220 
WMR R409981405661 
WME E134003968233 
Visa 
4274 3200 2453 6495 

Small. Fast. Reliable.
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 */
);

Создайте новый объект сессии, приложенный к дескриптору базы данных db. Если успешно, указатель на новый объект написан в *ppSession, и SQLITE_OK возвращен. Если ошибка происходит, *ppSession установлен в NULL, а код ошибки SQLite (например, SQLITE_NOMEM) возвращен.

Возможно создать многократные объекты сессии, приложенные к дескриптору единой базы данных.

Объекты сессии, созданные этой функцией, должны быть удалены, используя sqlite3session_delete() до закрытия обработчика базы данных, к которому они присоединены. Если обработчик базы данных закрывается прежде, чем объект сессии удален, то результаты вызова любой функции модуля сессии, включая sqlite3session_delete() на объекте сессии не определены.

Поскольку модуль сессии использует sqlite3_preupdate_hook() API, невозможно для запроса зарегистрировать перехватчик предварительного обновления базы данных, у которой есть один или несколько приложенных объектов сессии. И при этом невозможно создать объект сессии, приложенный к дескриптору базы данных, для которой уже определяется перехватчик перед обновлением. Результаты попытки любой из этих вещей не определены.

Объект сессии будет использоваться, чтобы создать changesets для таблиц в базе данных zDb, где zDb "main", "temp", или название приложенной базы данных. Это не ошибка, если база данных zDb не присоединена к базе данных, когда объект сессии создается.