2010-07-17 50 views
9

Trong SQLITE có khả năng tương đối dễ dàng tạo các hàm do người dùng định nghĩa và các hàm tổng hợp trong các ngôn ngữ (mở rộng) như C, Perl, Python và các ngôn ngữ khác. Có khả năng như vậy bằng cách sử dụng phổ biến-lisp như phần mở rộng ngôn ngữ SQLite? Tôi biết có những thư viện như cl-sqlite và plain-odbc nhưng chúng dường như không cung cấp khả năng này.Các hàm do người dùng định nghĩa SQLite trong Lisp

Trả lời

6

Khi tôi viết cl-sqlite, tôi đã không nghĩ về các hàm do người dùng xác định.

Nhưng nó thực sự khá dễ dàng. Nó chỉ cần để xác định callbacks, chức năng nước ngoài và bọc chúng trong giao diện lispy. Tôi đoán tôi sẽ sớm thêm tính năng này vào cl-sqlite.

+1

Cảm ơn. Tôi vui vì nó sẽ không khó. Trên thực tế trong khi đó tôi đã viết một mã C sử dụng sqlite3_exec và trong callback tôi nhúng một số ECL (lisp thực hiện) C chức năng như ecl_cons (ecl_cstring_to_base_string_or_nil (p_fields [i]), ... và gọi rằng trong ECL bằng cách sử dụng ffi: c-inline Sau đó, tất nhiên tôi có thể sử dụng sqlite3_create_function trong tệp C trên hàm C do người dùng định nghĩa. Nhưng trong cl-sqlite đã cập nhật, tôi tin rằng nó sẽ dễ dàng hơn vì người dùng sẽ định nghĩa hàm do người dùng định nghĩa trong CL mà không tham gia quá nhiều vào mã C (có thể chỉ thông qua CFFI). – francogrex

Các vấn đề liên quan