$ sudo port install ffcall
$ sudo port install clisp +dynffi
 
;; CLISP
> (ql:quickload :cffi)
 

 
参考:

macでclispでcffi – tmp
http://d.hatena.ne.jp/TAKUMA_N/20110429/1304058909
 
Is there a way to get the CLISP compiled with dynamic FFI support on Mac OS?
http://stackoverflow.com/questions/3901698/is-there-a-way-to-get-the-clisp-compiled-with-dynamic-ffi-support-on-mac-os

 
上記のステップを踏んで CLISP をインストールすれば Mac OS X で CL-DBI を使ってもエラーなく動作します。
 

 
(ql:quickload :dbi)
(defvar *db* (dbi-connect :sqlite3 :database-name "sample.db"))
(defvar query (dbi:prepare *db* "SELECT code, name FROM members"))
(defvar result (dbi:execute query))
 
 
;; dbi の fetch は plist の形で返される
(dbi:fetch result)
;; -> (:|code| 1 :|name| john)
 
 
;; なので特定のカラムのデータを抜き出すには getf を使う
(getf (dbi:fetch result) :|code|)
;; -> 2 ;; 実行する度に1レコード進む
 

 
参考:

cl-dbi
http://quickdocs.org/cl-dbi/api
 
Common Lisp用のデータベースライブラリ「CL-DBI」を作りました – 八発白中
http://d.hatena.ne.jp/nitro_idiot/20120130/1327926575
 
Common LispのProperty Listユーティリティ「Multival-Plist」を公開しました – 八発白中
http://d.hatena.ne.jp/nitro_idiot/20120228/1330425112

 
 
 

§1139 · Posted By · 12月 15, 2013 · Development · Tags: , · [Print]