まず、Postgresql のドライバを入れる。
$ wget http://www.kahua.org/download/dbi/Gauche-dbd-pg-0.2.1.tgz $ tar zxf Gauche-dbd-pg-0.2.1.tgz $ cd Gauche-dbd-pg-0.2.1 $ ls $ lv README $ which pg_config /usr/bin/pg_config $ rpm -qf /usr/bin/pg_config postgresql-devel-8.1.11-1.el5_1.1 $ ./configure $ make $ sudo make install
Gauche ユーザリファレンス 11.4 dbi - データベース非依存アクセス層 を参考に。
(use dbi) (use gauche.collection) (define (select-db dbname sql) (guard (e ((<dbi-error> e) (raise e))) (let* ((conn (dbi-connect (string-append "dbi:pg:dbname=" dbname))) (result (dbi-execute (dbi-prepare conn sql))) (getter (relation-accessor result))) (let ((dat (map (lambda (row) (map (lambda (x) (getter row x)) (relation-column-names result))) result))) (dbi-close conn) dat)))) (print (select-db "dbname" "SELECT code,post FROM jusho"))
$ gosh db.scm ((0 9999999) (1 2720035) (2 2720034) (3 2720033) (4 2720032) (5 2720826) (6 2720031) (7 2720824) (8 2720827) (9 2720834) (10 2720835) (11 2720825) (12 2720832) (13 2720833) (14 2720025) (15 2720026) (16 2720015) (17 2720024) (18 2720023))