2009-11-25 80 views
1

我试图连接到MSAccess数据库并检索一些数据。 简单的例子都运行良好,但如果我打算使用一些 where子句我没有得到任何数据。JDBC和MS-Access问题

这个例子是确定的:

PreparedStatement stm = con.prepareStatement("SELECT A.* FROM A"); 
ResultSet rs = stm.executeQuery(); 
rs.next(); 

下一个例子得不到行:

PreparedStatement stm = con.prepareStatement("SELECT A.* FROM A WHERE (((A.Name) LIKE ?))"); 
stm.setString(1,"*"); 
ResultSet rs = stm.executeQuery(); 
rs.next(); 

我不知道在哪里的错误在于:在驱动程序或SQL语法。

sql语句取自MSAccess中的查询生成器。

所有在where子句中稍微复杂一点的东西真的很难搞清楚。是否有任何文档重新编写MSAccess的SQL语法?

更新

是在JDBC SQL语句我有而访问SQL生成器是使用使用“SQL标准”通配符%*。现在要查询日期= 8-o

回答

1

对于类似的语句来工作,你必须把%之间参数:

PreparedStatement stm = con.prepareStatement("SELECT A.* FROM A WHERE (((A.Name) LIKE ?))"); 
stm.setString(1,"%like text%"); 
0

你是否指SQL通配符'%'而不是'*',或者你是否在寻找字符'*'?