9

我需要SQLite中的标准偏差函数。我已经找到一个位置:如何将扩展加载到SQLite?

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

而是一个扩展文件的SQLite的一部分。我从来没有安装过其中之一,我不知道该怎么做。我发现这个现有的功能,load_extension,在http://www.sqlite.org/lang_corefunc.html,但我不明白参数X和Y是什么。

基本上,我需要有人给我一步一步的指导如何安装聚合扩展文件。任何人都可以这样做?

回答

12

SQLite扩展是具有动态链接的库。你可以找到一些例子here(这是一个存储库,点击“登录/填写captcha”来启用超链接)。例如参见md5.c

  • load_extension必须SQLite中启用(编译IIRC)
  • 它需要作为第一个参数库
  • 的第二个参数的路径的入口点函数的名称(在md5.c它是sqlite3_extension_init)。其原型必须是int(sqlite3*, char **, const sqlite3_api_routines *)
  • 在SQL你可以尝试SELECT load_extension('md5.so', 'sqlite3_extension_init');或者干脆SELECT load_extension('md5.so');

你可以尝试编译md5.c,从sqlite的外壳使用.load md5.so

+0

目前我有一个类似的问题。我试图在sqlite中执行SELECT load_extension('mod_spatialite'),我有相应的mod_spatialite.dll - 文件,但我无法让它工作。我需要把.dll文件放在哪里? – user3116232

+0

@ user3116232您是否使用load_extension()语句中的.dll完整路径?如果是这样,尽量不要这样做。我意识到,扩展入口点名称的推导不适用于Windows风格的路径。 – lef