- ベストアンサー
※ 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"という警告が表示されるのでしょうか?
- みんなの回答 (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 は使ったことがなく、これで回避できるという自信はありませんので、参考意見としてください。
その他の回答 (1)
- guci-ok
- ベストアンサー率33% (49/146)
回答No.1
余り自信ないですが、 commitか、rollbackを呼んだら、結果どうなりますか? 更新はしていないし、DBIのドキュメントともずれてしまいますが、 これで出なくなったことがあったような記憶があります。
質問者
お礼
ご回答ありがとうございました。 connect時にAutoCommit=>0として$dbh->disconnectの直前に$dbh->commitとやってみたのですが、状況は変わりませんでした。
お礼
ご回答ありがとうございます。 ご回答いただいた内容を試してみたところ、見事に事象が発生しなくなりました。 「未解決の不具合」だったのかもしれません。