Как загрузить расширения в SQLite? - PullRequest
12 голосов
/ 12 июля 2011

Мне нужна функция стандартного отклонения в SQLite. Я нашел один здесь:

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

но это часть файла расширения для SQLite. Я никогда не устанавливал один из них прежде, и я не знаю, как это сделать. Я нашел эту существующую функцию, load_extension , в http://www.sqlite.org/lang_corefunc.html,, но я не понимаю, каковы параметры X и Y.

По сути, мне нужно, чтобы кто-то дал мне пошаговое руководство по установке файла совокупного расширения. Кто-нибудь может сделать это?

1 Ответ

16 голосов
/ 30 ноября 2011

Расширения SQLite - это библиотеки с динамической связью.Вы можете найти несколько примеров здесь (Это репозиторий , нажмите «login / fill 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...