Basic Werk | Memo | Contact


MEMOMEM

Gauche_sqlite3_dbd_install_MacOSX



Mac OS X (Mountain Lion) 環境で Gauche の SQLite3 ドライバーを入れる所でちょっとつまずいているのでメモ。


まずもって、 GitHub の mhayashi1120/Gauche-dbd-sqlite3 から、武蔵の日記さんのこちらの記事のやり方で試してみても、make の段階でエラーが出てしまい断念(勉強せいって話なんですが・・・)。


なので、こちらから gauche-dbd.sqlite3.080412b.tar.gz をダウンロードして gauche-package install で入れてみました。ここでもちょっとコツがあった。



# gauche-dbd.sqlite3.080412b.tar.gz を # ダウンロードしたディレクトリに移動した上で # リネーム $ mv gauche-dbd.sqlite3.080412b.tar.gz gauche-dbd.sqlite3.tar.gz
# リネーム済みの圧縮ファイルを指定する形で install $ sudo gauche-package install gauche-dbd.sqlite3.tar.gz


これで SQLite3 ドライバーのインストール自体はうまく行きました。


ただ、プログラミングGauche のP.368 前後に載ってる relation-accessor などは、SQLite には通用しないようで、発行した SELECT 文の各要素(カラムのデータ)にアクセスするには、dbi-get-value を使って番号でカラムのデータを取得するようです(ちょっと不便・・・)。



(use dbi) (use util.match) (use util.relation) (use gauche.sequence) (use gauche.parameter)
(define *db-name* "dbi:sqlite3:./schedule.db") (define db (make-parameter #f))
;; ・・・ ;; メモのため抜粋。いろいろ省略 (define (list-sch) (let* ((result (dbi-do (db) "SELECT day, plan FROM plans")) ;; (getter (relation-accessor result)) ;; この子が動いてくれない (plan-list (map (lambda (row) (cons (dbi-get-value row 0) ;; "day" (dbi-get-value row 1))) ;; "plan" result))) (for-each (lambda (p) (sch-print (car p) (cdr p))) plan-list)))


また時間見つけてもうちょっと調べてみる。


#Gauche #MacOSX #SQLite #dbd #dbi #relation-accessor #dbi-get-value #Scheme #Lisp



SN 2013/07/17 19:18:23

Archives > Gauche_sqlite3_dbd_install_MacOSX.html







MEMOMEM



More Contents

Basic Werk | Previous Blog

仕事と日 | 中村 心