2010-07-17 90 views
9

在SQLITE中,可以使用(擴展)語言(如C,Perl,Python等)輕鬆創建用戶定義的函數和聚合。使用common-lisp作爲SQLITE語言擴展還有這種可能嗎?我知道有像cl-sqlite和plain-odbc這樣的庫,但它們似乎不提供這種可能性。Lisp中的SQLITE用戶定義函數

回答

6

當我寫cl-sqlite時,我沒有想過用戶定義的函數。

但它其實很簡單。它只需要定義回調,外部函數並將它們包裝在lispy界面中。我想我會很快將這個功能添加到cl-sqlite中。

+1

謝謝。我很高興這不會有困難。其實同時我寫了一個使用sqlite3_exec的C代碼,並在回調函數中嵌入了一些ECL(lisp實現)C函數,如ecl_cons(ecl_cstring_to_base_string_or_nil(p_fields [i])... 並在ECL中使用ffi:c-inline然後當然我可以在C編碼的用戶自定義函數的C文件中使用sqlite3_create_function,但是在更新後的cl-sqlite中,我相信它會更容易一些,因爲用戶將定義用戶定義的函數CL沒有太過參與C代碼(也許只能通過CFFI)。 – francogrex 2010-07-20 20:42:27