2010-07-17 32 views
9

SQLITE içinde, C, Perl, Python ve diğerleri gibi (uzantı) dillerinde Kullanıcı Tanımlı İşlevler ve Toplamalar oluşturma olanağı vardır. SQLITE dil uzantısı olarak common-lisp kullanmak gibi bir olasılık var mı? Biliyorum ki, cl-sqlite ve sade-odbc gibi kütüphaneler var ama bu olasılığı sunmuyorlar.Lispit'te SQLITE kullanıcı tanımlı işlevler

cevap

6

cl-sqlite yazdığımda, kullanıcı tanımlı işlevler hakkında düşünmemiştim.

Ancak aslında oldukça kolaydır. Sadece geri aramaları, yabancı fonksiyonları tanımlamak ve bunları lispy arayüzüne sarmak gerekir. Sanırım bu özelliği yakında cl-sqlite'e ekleyeceğim.

+1

Teşekkürler. Bunun zor olmayacağına sevindim. Bu arada, sqlite3_exec kullanan bir C kodu yazdım ve geri aramada ecl_cons (ecl_cstring_to_base_string_or_nil (p_fields [i]), ... gibi ECL (lisp implementasyonu) C fonksiyonlarını gömdüm ve ECF'de ffi: c-inline kullanarak ve ffi: clines.Ondan tabiki C-kodlu kullanıcı-tanımlı fonksiyonda C dosyasında sqlite3_create_function kullanabilirim ama güncellenen cl-sqlite içinde daha kolay olacağını düşünüyorum çünkü kullanıcı kullanıcı tanımlı fonksiyonu tanımlayacaktır. CL C kodu ile fazla ilgilenmeden CL (belki sadece CFFI aracılığıyla). – francogrex

İlgili konular