Регистрация реализации виртуальной таблицы
int sqlite3_create_module( sqlite3 *db, /* SQLite connection to register module with */ const char *zName, /* Name of the module */ const sqlite3_module *p, /* Methods for the module */ void *pClientData /* Client data for xCreate/xConnect */ ); int sqlite3_create_module_v2( sqlite3 *db, /* SQLite connection to register module with */ const char *zName, /* Name of the module */ const sqlite3_module *p, /* Methods for the module */ void *pClientData, /* Client data for xCreate/xConnect */ void(*xDestroy)(void*) /* Module destructor function */ );
Эти процедуры используются для регистрации нового модуля виртуальной таблицы. Имена модулей должны быть зарегистрированы до создания новой виртуальной таблицы с использованием модуля и перед использованием существующей виртуальной таблицы для модуля.
Имя модуля регистрируется в соединении с базой данных, указанном в первом параметре. Название модуля задается во втором параметре. Третий параметр — указатель на реализацию модуля виртуальной таблицы. Четвертый параметр — произвольный указатель данных клиента, который передается методам xCreate и xConnect модуля виртуальной таблицы при создании или повторной инициализации новой виртуальной таблицы.
Интерфейс sqlite3_create_module_v2() имеет пятый параметр, который является указателем на деструктор для pClientData. SQLite вызовет функцию деструктора (если она не NULL), когда SQLite больше не нуждается в указателе pClientData. Деструктор также будет вызван, если вызов sqlite3_create_module_v2() завершится неудачно. Интерфейс sqlite3_create_module() эквивалентен sqlite3_create_module_v2() с NULL деструктором.
Если третий параметр (указатель на объект sqlite3_module) равен NULL, то новый модуль не создается, а все существующие модули с таким же именем удаляются.
См. также: sqlite3_drop_modules()
См. также списки Объектов, Констант и Функций.
SQLite is in the Public Domain.
https://sqlite.org/c3ref/create_module.html