sqlite.h


Registrar una implementación de tabla virtual

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 */
);

Estas funciones se usan para registrar un nuevo nombre de módulo de tabla virtual. Los nombres de módulo deben ser registrados antes de crear una nueva tabla virtual usando el módulo y antes de usar una tabla virtual previamente existente para el módulo.

El nombre de módulo es registrado en la conexión de base de datos especificada por el primer parámetro. El nombre del módulo viene dado por el segundo parámetro. El tercer parámetro es un puntero a la implementación del módulo de la tabla virtual. El cuarto parámetro es un puntero arbitrario de datos de cliente que se transmite a través de los métodos xCreate y xConnect del módulo de tabla virtual, cuando la nueva tabla virtual está siendo creada o reinicializada.

La función sqlite3_create_module_v2() tiene un quinto parámetro que es un puntero al un destructor para pClientData. SQLite invocarña al destructor (si no es NULL) cuando SQLite ya no necesite el puntero pClientData. El destructor también puede ser invocado si la llamada a sqlite3_create_module_v2() falla. La función sqlite3_create_module() es equivalente a sqlite3_create_module_v2() con un destructor NULL.