- 締切済み
JDBC-ODBC-MDB(日本語テーブル・カラム名)アクセスで、ODBC -1305エラー
日本語のテーブル名・カラム名を使用したAccess(2000) mdb に JSPおよびServletからJDBC(ODBC経由)でアクセスすると、 SQL実行[executeQuery()]時に下記のエラーが発生します。 getMessage(): [Microsoft][ODBC Microsoft Access Driver] getErrorCode(): -1305 getSQLState(): S0002 ただし、 1.Javaアプリケーションから直接JDBC(ODBC経由)でアクセスすると正常に動作します(ResultSet取得)。 2.JSP・サーブレットからのアクセスでも、 2-1.テーブル名・カラム名がascii文字のテーブルの場合 2-2.テーブル名・カラム名が日本語でも、SQLで使わない場合 例:SELECT now() の場合は、 正常に動作します(ResultSet取得)。 JSP Servletは contentType="text/html; charset=Windows-31J" pageEncoding="windows-31j" で、保存形式は 日本語Shift_JISです。 出力画面表示に文字化けはありません。 作業環境はノートPC1台で、 Tomcat: 5.5.27 JDK/JRE : 1.6.0_07 Eclipse: 3.4.2 OS:Vista Ultimate SP1 ODBCデータソース:システムDNS Microsoft Access Driver(*.mdb) 6.00.6001.18000 ODBCJT32.DLL です。 諸兄のお知恵を拝借お願いします。 ※エラーコードの内容は? ※どのあたりを調べればよいか? ========================= Servletの場合のStackTraceなど -- getMessage:[Microsoft][ODBC Microsoft Access Driver] getErrorCode:-1305 getSQLState:S0002 java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958) at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115) at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3111) at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338) at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(JdbcOdbcStatement.java:253) ========================= JSPの場合のStackTraceなど -- getMessage:[Microsoft][ODBC Microsoft Access Driver] getErrorCode:-1305 getSQLState:S0002 java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958) at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115) at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3111) at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338) at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(JdbcOdbcStatement.java:253) at org.apache.jsp.TestODBC_jsp._jspService(TestODBC_jsp.java:95) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
- みんなの回答 (2)
- 専門家の回答
お礼
Yanchさん、ご連絡ありがとうございます。 ソースまで助かります(下記の理由で、別途利用させていただきます)。 全く同じモジュールで、Eclipseからの実行時に発生する本障害が、 Tomcatに配備(※)した場合には発生せず、日本語mdbから正しく 情報を得ることができることが確認できました。 プログラムの問題ではなく、Eclipse 3.4.2の環境設定に まずい部分があるのだという仮定で、続けて調べています。 週末に XP/2000を用意して、そこで同じEclipseを立ち上げて マシン環境ではないことも確認してみる予定です。 遅くなりましたが、経過報告まで。 ※EclipseにてWARファイルにエクスポートして、Tomcatのmanagerで配備。
補足
元環境にてEclipseのサーバー関連の設定・操作を行っていたところ、正常に動作するようになりました。残念ながら、原因を特定するに至っていません。週末、不具合の再現に取り組んでみますが、Eclipseの理解不足が根幹にありました。 いろいろありがとうございました。 取り急ぎご報告とお礼まで。