1

我尝试执行以下 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 应用程序中使用 [*]-wildcard,但它根本没有给我任何数据集。此外,我尝试用 ["] 字符替换 ['] 字符,但这也不起作用。

我不知道这是否相关,但我认为 *.mdb 文件是使用 MS Access (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();
4

1 回答 1

3

建议您从 Java 和直接在 Access 中尝试此 SQL 语句。

SELECT Count(*) AS num_rows FROM Tbl_Job WHERE jobname ALike '%aa%';

如果num_rows在两种情况下都相同,请更改第一个查询中的 WHERE 子句以匹配这个。

如果num_rows在两种情况下都不相同,请描述它们的不同之处以及哪些是正确的。

于 2012-11-07T14:46:30.977 回答