- PR -

Java-AccessDB接続におけるエラーについて

1
投稿者投稿内容
ハネ
常連さん
会議室デビュー日: 2002/01/09
投稿数: 32
お住まい・勤務地: 東京
投稿日時: 2005-07-13 22:42
現在、下記[環境]上でAccessDBからデータを取得するWebアプリを作成しています。
AccessDBに対してSELECTを繰り返していると下記[エラー]が発生します。
エラーメッセージをネット上で探したのですが見つからないため投稿しました。
原因や回避策をご存知の方がいましたらご教授下さい。

[エラー]
[Microsoft][ODBC Microsoft Access Driver] これ以上テーブルを開くことはできません。
[環境]
WindowsXP
Tomcat4.1.30
JDK1.4.2.07
Access2000
ハツキタツミ
大ベテラン
会議室デビュー日: 2005/05/24
投稿数: 108
投稿日時: 2005-07-14 10:27
とりあえず、エラーの発生する最低限のコードぐらい、提示してみてはいかがでしょう?
ハネ
常連さん
会議室デビュー日: 2002/01/09
投稿数: 32
お住まい・勤務地: 東京
投稿日時: 2005-07-14 11:20
現状、わかっていることを記載します。
コードは以下のような感じです。
Class.forName(・・・);
Connection connection = DriverManager.getConnection(・・・);
PreparedStatement ps = connection.prepareStatement(・・・);
ResultSet rs = ps.executeQuery();

executeQuery()をコールした時点でSQLExceptionが発生し、
記載した[エラー]とSQLState="S1001"が発生していました。
今川 美保(夏椰)
ぬし
会議室デビュー日: 2004/06/10
投稿数: 363
お住まい・勤務地: 神奈川県茅ヶ崎市
投稿日時: 2005-07-14 11:37
引用:

ハネさんの書き込み (2005-07-13 22:42) より:
現在、下記[環境]上でAccessDBからデータを取得するWebアプリを作成しています。
AccessDBに対してSELECTを繰り返していると下記[エラー]が発生します。
エラーメッセージをネット上で探したのですが見つからないため投稿しました。
原因や回避策をご存知の方がいましたらご教授下さい。

[エラー]
[Microsoft][ODBC Microsoft Access Driver] これ以上テーブルを開くことはできません。
[環境]
WindowsXP
Tomcat4.1.30
JDK1.4.2.07
Access2000



まんまなんじゃないかと疑ってみたんですが・・・。
Connectionなどをクローズし忘れてしまって、
「テーブルが開いている数が増えていきエラーが出た」
って感じなのではないかと。

提示されたコードは部分的でしかないので、断言できないのですが・・・。
ハネ
常連さん
会議室デビュー日: 2002/01/09
投稿数: 32
お住まい・勤務地: 東京
投稿日時: 2005-07-14 12:31
すみません。解決しました。

PreparedStatementを複数取得していたにも関わらず、
PreparedStatementのclose()を1回しかしていませんでした。。。。
各PreparedStatement取得に対してclose()を行うようにしたところ
解決しました。
ご意見ありがとうございました。
raystar
ぬし
会議室デビュー日: 2003/01/16
投稿数: 251
お住まい・勤務地: Tokyo/Japan
投稿日時: 2005-07-14 12:48
rsもクローズしてください。

uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2005-07-14 13:21
引用:

raystarさんの書き込み (2005-07-14 12:48) より:
rsもクローズしてください。


StatementオブジェクトをクローズしていればResultSetオブジェクトのクローズは不要です。
#ドライバがきちんと実装されていることが前提ですが
1

スキルアップ/キャリアアップ(JOB@IT)