2009-11-25 416 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通配符'%'而不是'*',或者你是否在尋找字符'*'?