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

Small. Fast. Reliable.
Choose any three.

SQLite C Interface

Инициализируйте библиотеку SQLite

int sqlite3_initialize(void);
int sqlite3_shutdown(void);
int sqlite3_os_init(void);
int sqlite3_os_end(void);

sqlite3_initialize() инициализирует библиотеку SQLite. sqlite3_shutdown() освобождает любые ресурсы, которые были ассигнованы sqlite3_initialize(). Это разработано, чтобы помочь в инициализации процесса и закрытии во встроенных системах. Приложения рабочей станции, используя SQLite обычно не должны вызывать ничего из этого.

Вызов sqlite3_initialize() является "эффективным" запросом, если это первый вызов sqlite3_initialize() в течение целой жизни процесса, или если это первый вызов sqlite3_initialize() после sqlite3_shutdown(). Только эффективный запрос sqlite3_initialize() делает любую инициализацию. Все другие безопасны и не делают ничего.

Вызов sqlite3_shutdown() является "эффективным" запросом, если это первый запрос sqlite3_shutdown(), начиная с последнего sqlite3_initialize(). Только эффективный запрос к sqlite3_shutdown() делает любое завершение. Все другие действительные запросы к sqlite3_shutdown() не делают ничего.

sqlite3_initialize() ориентирован на многопоточное исполнение, но не sqlite3_shutdown(). sqlite3_shutdown() нужно вызвать только от единственного потока. Все открытые соединения с базой данных должны быть закрыты, и все другие ресурсы SQLite должны быть освобождены до вызова sqlite3_shutdown().

Среди прочего, sqlite3_initialize() вызовет sqlite3_os_init(). Аналогично sqlite3_shutdown() вызовет sqlite3_os_end().

sqlite3_initialize() вернет SQLITE_OK при успехе. Если по некоторым причинам sqlite3_initialize() не может инициализировать библиотеку (возможно, это не смогло ассигновать необходимый ресурс, такой как mutex), это возвращает код ошибки, а не SQLITE_OK.

sqlite3_initialize() вызывает внутренне много других интерфейсов SQLite так что приложение обычно не должно вызывать напрямую sqlite3_initialize(). Например, sqlite3_open() вызывает sqlite3_initialize(), таким образом, библиотека SQLite будет автоматически инициализирована, когда sqlite3_open() вызовут, если это не было инициализировано. Однако, если SQLite собран с выбором времени компиляции SQLITE_OMIT_AUTOINIT, автоматические вызовы sqlite3_initialize() опущены, и приложение должно вызвать sqlite3_initialize() непосредственно до использования любого другого интерфейса SQLite. Для максимальной мобильности рекомендуется, чтобы запросы всегда вызвали sqlite3_initialize() непосредственно до использования любого другого интерфейса SQLite. Будущие выпуски SQLite могут потребовать этого. Другими словами, поведение, показанное, когда SQLite собран с SQLITE_OMIT_AUTOINIT, могло бы стать поведением по умолчанию в некотором будущем выпуске SQLite.

sqlite3_os_init() делает инициализацию библиотеки SQLite для операционной системы. sqlite3_os_end() отменяет эффект sqlite3_os_init(). Типичные задачи, выполненные этим установленным порядком, включают распределение или освобождение статических ресурсов, инициализацию глобальных переменных, настраивая умолчание модуля sqlite3_vfs или настраивая конфигурацию по умолчанию, используя sqlite3_config().

Применение никогда не должно вызывать sqlite3_os_init() или sqlite3_os_end(). Применение должно вызвать только sqlite3_initialize() и sqlite3_shutdown(). sqlite3_os_init() вызывает автоматически sqlite3_initialize() и sqlite3_os_end() вызывает sqlite3_shutdown(). Соответствующие внедрения для sqlite3_os_init() и sqlite3_os_end() встроены в SQLite, когда это собрано для Unix, Windows или OS/2. Когда построено для других платформ (используя выбор времени компиляции SQLITE_OS_OTHER=1), приложение должно поставлять подходящее внедрение для sqlite3_os_init() и sqlite3_os_end(). Прикладная предоставленная реализация sqlite3_os_init() или sqlite3_os_end() должна возвратить SQLITE_OK при успехе и некоторый другой код ошибки при сбое.