Spec-Zone.ru › SQLite

Загрузка расширения

int sqlite3_load_extension(
  sqlite3 *db,          /* Load the extension into this database connection */
  const char *zFile,    /* Name of the shared library containing extension */
  const char *zProc,    /* Entry point.  Derived from zFile if 0 */
  char **pzErrMsg       /* Put error message here if not 0 */
);

Этот интерфейс загружает библиотеку расширения SQLite из указанного файла.

Интерфейс sqlite3_load_extension() пытается загрузить библиотеку расширения SQLite, содержащуюся в файле zFile. Если файл не может быть загружен напрямую, предпринимаются попытки загрузки с добавлением различных расширений, специфичных для операционной системы. Например, если "samplelib" не может быть загружен, то могут быть также попытки загрузки с именами "samplelib.so", "samplelib.dylib" или "samplelib.dll".

Точка входа — zProc. zProc может быть 0, в этом случае SQLite попытается определить точку входа самостоятельно. Сначала она попробует "sqlite3_extension_init". Если это не сработает, она создаст имя "sqlite3_X_init", где X состоит из строчных эквивалентов всех буквенных ASCII символов в имени файла от последнего "/" до первого последующего "." и исключая любой начальный "lib". Интерфейс sqlite3_load_extension() возвращает SQLITE_OK при успешной загрузке и SQLITE_ERROR в случае возникновения проблемы. Если произошла ошибка, и pzErrMsg не 0, то интерфейс sqlite3_load_extension() попытается заполнить *pzErrMsg сообщением об ошибке, сохраненным в памяти, полученной из sqlite3_malloc(). Вызывающая функция должна освободить эту память, вызвав sqlite3_free().

Загрузка расширений должна быть включена с помощью sqlite3_enable_load_extension() или sqlite3_db_config(db,SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION,1,NULL) до вызова данного API, в противном случае будет возвращена ошибка.

Предупреждение по безопасности: Рекомендуется использовать метод SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION для включения только этого интерфейса. Следует избегать использования интерфейса sqlite3_enable_load_extension(). Это позволит сохранить функцию SQL load_extension() отключенной и предотвратить SQL-инъекции, которые могут предоставить злоумышленникам доступ к возможностям загрузки расширений.

См. также функцию SQL load_extension().

Также см. списки Объектов, Констант и Функций.

SQLite is in the Public Domain.
https://sqlite.org/c3ref/load_extension.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API