• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ステートメントハンドルのクローズに失敗?)

ステートメントハンドルのクローズに失敗?

このQ&Aのポイント
  • WindowsXP+perl5.8.8+sqlite3の環境で作成したプログラムが、$hDB->disconnect;のタイミングで"closing dbh with active statement handles"という警告が表示される理由は何でしょうか?
  • 作成したプログラムを実行すると、テーブル"tshoku"内の項目"ts_key"が表示されますが、$hDB->disconnect;の直前にステートメントハンドルはクローズしているにもかかわらず、警告が表示されてしまいます。
  • なぜ$hDB->disconnect;のタイミングで"closing dbh with active statement handles"という警告が表示されるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • t-okura
  • ベストアンサー率75% (253/335)
回答No.2

DBD::SQLite の未解決の不具合と思われます。 http://rt.cpan.org/Public/Bug/Display.html?id=22688 下記は http://www.perlmonks.org/?node_id=619312 からの抜粋ですが、undef $sth することでエラーを回避できるようです。 ---------------------------------------------------------------- $sth->finish; #undef $sth; # to stop "closing dbh with active statement handles" # http://rt.cpan.org/Ticket/Display.html?id=22688 $dbh->disconnect; ---------------------------------------------------------------- SQLite は使ったことがなく、これで回避できるという自信はありませんので、参考意見としてください。

misshiki
質問者

お礼

ご回答ありがとうございます。 ご回答いただいた内容を試してみたところ、見事に事象が発生しなくなりました。 「未解決の不具合」だったのかもしれません。

その他の回答 (1)

  • guci-ok
  • ベストアンサー率33% (49/146)
回答No.1

余り自信ないですが、 commitか、rollbackを呼んだら、結果どうなりますか? 更新はしていないし、DBIのドキュメントともずれてしまいますが、 これで出なくなったことがあったような記憶があります。

misshiki
質問者

お礼

ご回答ありがとうございました。 connect時にAutoCommit=>0として$dbh->disconnectの直前に$dbh->commitとやってみたのですが、状況は変わりませんでした。

関連するQ&A

専門家に質問してみよう