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