9

Potrzebuję standardowej funkcji odchylenia w SQLite. Znalazłem jeden tutaj:Jak wczytać rozszerzenia do SQLite?

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

ale jego częścią pliku rozszerzenie do SQLite. Nigdy wcześniej nie instalowałem żadnego z nich i nie wiem, jak to zrobić. Znalazłem tę istniejącą funkcję, load_extension, at http://www.sqlite.org/lang_corefunc.html, ale nie rozumiem, jakie są parametry X i Y.

Zasadniczo potrzebuję kogoś, kto prześle mi krok po kroku, jak zainstalować zagregowany plik rozszerzenia. Czy ktoś może to zrobić?

Odpowiedz

12

Rozszerzenia SQLite to biblioteki z dynamicznym powiązaniem. Możesz znaleźć kilka przykładów: here (To jest repozytorium , kliknij "login/fill captcha", aby włączyć hiperłącza). Zobacz na przykład md5.c.

  • load_extension musi być włączony SQLite (Pragma IIRC)
  • wymaga on jako pierwszy argument ścieżkę do biblioteki
  • Drugi argument jest nazwą funkcji punktu wejścia (w md5.c jest sqlite3_extension_init). Jego prototyp musi być int(sqlite3*, char **, const sqlite3_api_routines *).
  • W SQL można spróbować SELECT load_extension('md5.so', 'sqlite3_extension_init'); lub po prostu SELECT load_extension('md5.so');

Można spróbować skompilować md5.c iz sqlite skorupy używać .load md5.so

+0

Jestem obecnie mający podobne pytanie. Próbuję wykonać SELECT load_extension ("mod_spatialite") w sqlite, mam odpowiedni plik mod_spatialite.dll - ale nie mogę go uruchomić. Gdzie muszę umieścić plik .dll? – user3116232

+0

@ user3116232 Czy używasz pełnej ścieżki do instrukcji .dll w metodzie load_extension()? Jeśli tak, staraj się tego nie robić. Zdałem sobie sprawę, że dedukcja nazwy punktu wejścia rozszerzenia nie działa ze ścieżkami w stylu Windows. – lef