2010-07-17 4 views
9

Dans SQLITE, il est possible de créer relativement facilement des fonctions définies par l'utilisateur et des agrégats dans des langages (d'extension) tels que C, Perl, Python et autres. Y a-t-il aussi une telle possibilité en utilisant common-lisp comme extension de langage SQLITE? Je sais qu'il existe des bibliothèques comme cl-sqlite et plain-odbc mais elles ne semblent pas offrir cette possibilité.Fonctions SQLITE définies par l'utilisateur dans Lisp

Répondre

6

Lorsque j'ai écrit cl-sqlite, je n'avais pas pensé aux fonctions définies par l'utilisateur.

Mais c'est en fait assez facile. Il suffit de définir des callbacks, des fonctions étrangères et de les placer dans une interface lispy. Je suppose que je vais ajouter cette fonctionnalité à cl-sqlite bientôt.

+1

Merci. Je suis content que ce ne soit pas difficile. Pendant ce temps, j'ai écrit un code C qui utilise sqlite3_exec et dans le callback j'ai intégré quelques fonctions C ECL (implémentation Lisp) comme ecl_cons (ecl_cstring_to_base_string_or_nil (p_fields [i]), ... et appelons ça dans ECL en utilisant ffi: c-inline Puis, bien sûr, je pourrais utiliser la fonction sqlite3_create_function dans le fichier C de la fonction C définie par l'utilisateur, mais dans la version cl-sqlite mise à jour, je crois que ce sera plus facile parce que l'utilisateur définira la fonction définie par l'utilisateur. CL sans trop s'impliquer dans le code C (peut-être uniquement via le CFFI). – francogrex

Questions connexes