えんどう
yasuy****@javao*****
2004年 4月 19日 (月) 06:20:42 JST
えんどうです。 ご指摘ありがとうございます。 >dbi-execute-query を使って、SELECT等を行った場合、 >その結果を全部取得するまでは、次のSQLを実行出来なくなってしまうようです。 http://www.kahua.org/cgi-bin/kahua.cgi/kahua-web/show/dev/DBI すべての結果セットを得てしまうときの負荷を考えて dbi_use_result を 使うことにしたのですが、そのような副作用があるのなら dbi_store_result を 使ったほうが良いのかもしれません。 上記のToDoに書いたように、 本当は dbi_use_result と dbi_store_result のどちらを使うか 選べた方が良いのでしょうが、DBI層での抽象化方法を思いつかなかったので ペンディングにしてあります。 DBI層で抽象化するのではなく、dbd.mysql を直接呼び出して どちらか切り替えておく、で良いのかも知れません。 # 他言語のDBI/DBDも調べてみたほうが良いのでしょうね。 >;; なので、返り値の<dbi-result-set>をなくしてしまうと、 >;; どうしようもなくなってしまう気が…‥ これは利用側で結果セットを保存しなかったとき困る、という意味でしょうか? >なので、 dbd/mysql.c の 104行目は、 >mysql_use_result() ではなく、 mysql_store_result() >を使った方が無難な気がします。 mysql_store_result に書き換えてみて 0.1.4 を出そうかと思います。 >;; おまけ >;; http://www.tir.ne.jp/~nekoie/mtest/mtest.cgi >;; http://www.tir.ne.jp/~nekoie/mtest/mtest.txt >;; http://www.tir.ne.jp/~nekoie/mtest/util-mysql.scm おお、DBI/DBDの最初の応用例のような気がします。(^^) 何かありましたらまたご指摘ください。m(_ _)m -- ENDO Yasuyuki <yasuy****@javao*****> http://www.javaopen.org/~yasuyuki/ (Personal/Japanese Only) http://www.javaopen.org/jfriends/ (Japanese Only)