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

Small. Fast. Reliable.
Choose any three.

SQLite C Interface

Десериализуйте базу данных

int sqlite3_deserialize(
  sqlite3 *db,            /* The database connection */
  const char *zSchema,    /* Which DB to reopen with the deserialization */
  unsigned char *pData,   /* The serialized database content */
  sqlite3_int64 szDb,     /* Number bytes in the deserialization */
  sqlite3_int64 szBuf,    /* Total size of buffer pData[] */
  unsigned mFlags         /* Zero or more SQLITE_DESERIALIZE_* flags */
);

Интерфейс sqlite3_deserialize(D,S,P,N,M,F) заставляет соединение с базой данных D отсоединиться от базы данных S и затем вновь открыть S как базу данных в памяти на основе преобразования в последовательную форму содержавшегося в P. Преобразованная в последовательную форму база данных P будет N байт в размере. M это размер буфера P, который мог бы быть больше, чем N. Если M больше N и бит SQLITE_DESERIALIZE_READONLY не установлен в F, SQLite разрешают добавить содержание к базе данных в памяти, пока полный размер не превышает M байт.

Если бит SQLITE_DESERIALIZE_FREEONCLOSE утсановлен в F, SQLite вызовет sqlite3_free() на буфере преобразования в последовательную форму, когда соединение с базой данных закроется. Если бит SQLITE_DESERIALIZE_RESIZEABLE установлен, то SQLite попытается увеличить размер буфера, используя sqlite3_realloc64(), если записи в базу данных заставляют его первысить M байт.

Приложения не должны изменять буфер P или лишать его законной силы, прежде чем соединение с базой данных D будет закрыто.

Интерфейс sqlite3_deserialize() потерпит неудачу с SQLITE_BUSY, если база данных в настоящее время будет в транзакции чтения или будет вовлечена в операцию резервного копирования.

Невозможна десериализация БД TEMP. Если аргумент S в sqlite3_deserialize(D,S,P,N,M,F) = "temp", то функция возвращает SQLITE_ERROR.

Десериализованная база данных не должна быть в режиме WAL. Если база данных будет в режиме WAL, то любая попытка использовать файл базы данных приведет к ошибке SQLITE_CANTOPEN. Приложение может установить номера версий формата файла (байты 18 и 19) входной базы данных P в 0x01 до вызова sqlite3_deserialize(D,S,P,N,M,F), чтобы перевести файл базы данных в режим обратной перемотки и обойти эту проблему.

Если sqlite3_deserialize(D,S,P,N,M,F) терпит неудачу по какой-либо причине и если бит SQLITE_DESERIALIZE_FREEONCLOSE установлен в аргументе F, то sqlite3_free() вызван на аргумент P до возвращения.

Этот интерфейс опущен, если SQLite собран с опцией SQLITE_OMIT_DESERIALIZE.