[Gauche-devel-jp] Re: PostgreSQLサンプルに見知らぬモジュールが

Zurück zum Archiv-Index

yasuy****@javao***** yasuy****@javao*****
2003年 10月 22日 (水) 11:59:43 JST


えんどうです。

On Wed, 08 Oct 2003 18:48:32 -1000 (HST)
Shiro Kawai <shiro****@lava*****> wrote:

> ディレクトリにアクセスするとそれらしきファイルが見えます。
> 
> http://maruska.dyndns.org/comp/activity/scheme/gauche/

ありがとうございます。上記から関連するソースを入手しました。
上記以外に、たとえば log.scm では

(load "~/sc/alg/alist.scm")
(load "~/sc/term/color.scm")

というような記述があり、
作者に連絡でもしないとサンプルを動作させるのは困難のようでした。

とりあえず PostgreSQL に以下のようなテーブルを作り、

yasuyuki=# \d test
       テーブル "public.test"
 カラム |        型         | 修飾語 
--------+-------------------+--------
 id     | integer           | 
 name   | character varying | 

yasuyuki=# select * from test;
 id  |   name   
-----+----------
 100 | yasuyuki
 200 | nobsun
(2 行)

以下のようなテストコードでテストしてみました。

#!/bin/exec gosh
(use pg)
(define (main args)
  (define connection (pg-connect "dbname=yasuyuki user=yasuyuki"))
  (define result (pg-exec connection "select * from test"))
  (define status (pg-result-status result))
  (define error (pg-result-error-message result))
  (define nrows (pg-ntuples result))
  (define ncols (pg-nfields result))
  (define (fetch-rows s r)
    (if (< r 0)
	s
	(fetch-rows (fetch-cols s r (- ncols 1)) (- r 1))))
  (define (fetch-cols s r c)
    (if (< c 0)
	s
	(fetch-cols (cons (pg-get-value result r c) s) r (- c 1))))
  (display (fetch-rows '() (- nrows 1)))
  (newline)
  (pg-finish connection)
)

実行結果はこんな感じです。

$ gosh pgtest.scm
(100 yasuyuki 200 nobsun)

このままでは PostgreSQL の libpq APIをそのままラップしただけなのですが、

+-----------------------------------+
| ・ドライバーの差し替えができるAPI |
| ・コネクション                    |
| ・問い合わせ                      |
| ・結果セット                      |
+----------------+------------------+
| PostgreSQL     |   MySQL          |
| ドライバー     |   ドライバー     |
+----------------+------------------+
| libpq          | libmysqlclient   |
+----------------+------------------+

こんな構造のライブラリーを Gauche で構築するには
どうするのが良いでしょうか?
-- 
ENDO Yasuyuki <yasuy****@javao*****>
http://www.ss.iij4u.or.jp/~eyasuyuk/ (Personal/Japanese Only)
http://www.javaopen.org/jfriends/ (Japanese Only)




Gauche-devel-jp メーリングリストの案内
Zurück zum Archiv-Index