次のSQLステートメントを(Javaアプリケーションで)実行しようとしています。
SELECT * FROM Tbl_Job WHERE jobname LIKE '%aa%';
しかし、MS Access(2002)を使用して同じ(正しい?)結果を得ることができません。
SELECT * FROM Tbl_Job WHERE jobname LIKE '*aa*';
この例では、Accessは400個のデータセットを提供し、Javaアプリケーションはデータセットの正確な数がわからないので少しだけ提供します。
Javaアプリで[*]-ワイルドカードを使用しようとしましたが、データセットがまったく表示されませんでした。また、[']-文字を["]-文字に置き換えようとしましたが、これも機能しませんでした。
これが適切かどうかはわかりませんが、*。mdbファイルはMSAccess(2000)で作成されたと思います。
私のJavaコード:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection connection = DriverManager.getConnection("jdbc:odbc:_
Driver={Microsoft Access Driver_
(*.mdb)};DBQ=C:\database.mdb");
Statement stm = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
ResultSet rs = stm.executeQuery(sql);
while(rs.next())
do_some_stuff();