9

Necesito una función de desviación estándar en SQLite. He encontrado uno aquí:¿Cómo cargar extensiones en SQLite?

http://www.sqlite.org/contrib?orderby=date

pero es parte de un archivo de extensión a SQLite. Nunca antes había instalado uno de estos y no sé cómo hacerlo. Encontré esta función existente, load_extension, en http://www.sqlite.org/lang_corefunc.html, pero no entiendo cuáles son los parámetros X e Y.

Básicamente, necesito que alguien me proporcione una guía paso a paso sobre cómo instalar el archivo de extensión agregado. ¿Alguien puede hacer esto?

Respuesta

12

Las extensiones SQLite son bibliotecas con vinculación dinámica. Puede encontrar algunos ejemplos here (Este es un repositorio , haga clic en "iniciar sesión/capturar captcha" para habilitar los hipervínculos). Ver por ejemplo md5.c.

  • load_extension debe estar habilitado en SQLite (pragma IIRC)
  • que requiere como primer argumento el camino de la biblioteca
  • El segundo argumento es el nombre de la función de punto de entrada (en md5.c es sqlite3_extension_init). Su prototipo debe ser int(sqlite3*, char **, const sqlite3_api_routines *).
  • En SQL puede probar SELECT load_extension('md5.so', 'sqlite3_extension_init'); o simplemente SELECT load_extension('md5.so');

Usted puede tratar de compilar md5.c, y de la cáscara sqlite utilizar .load md5.so

+0

Actualmente estoy teniendo una pregunta similar. Estoy intentando ejecutar SELECT load_extension ('mod_spatialite') en sqlite, tengo el archivo mod_spatialite.dll correspondiente, pero no puedo hacer que funcione. ¿Dónde debo colocar el archivo .dll? – user3116232

+0

@ user3116232 ¿Está utilizando la ruta completa al .dll en la instrucción load_extension()? Si es así, intenta no hacerlo. Me di cuenta de que la deducción del nombre del punto de entrada de extensión no funciona con las rutas de estilo de Windows. – lef

Cuestiones relacionadas