我从Access数据库中获取了一些Java。这是执行查询的代码:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String filename = "C:/Development/tomcat/webapps/inquire/inquire.mdb";
String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
database+= filename.trim() + ";DriverID=22;READONLY=true}";
Connection con = DriverManager.getConnection( database ,"","");
Statement s = con.createStatement();
s.execute ("SELECT manager FROM inquiries");
ResultSet rs = s.getResultSet();
是的,在该位置有一个名为inquire.mdb的数据库,其中有一个名为'queries'的表,其中一列名为'manager'
然而,当代码执行时,我得到了:
java.sql.SQLException:找不到列
这真的很奇怪,因为在另一个地方这个查询有效:
String theQuery = "SELECT DISTINCT manager FROM inquiries";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String filename = "C:/Development/tomcat/webapps/inquire/inquire.mdb";
String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
database+= filename.trim() + ";DriverID=22;READONLY=true}";
Connection con = DriverManager.getConnection( database ,"","");
Statement s = con.createStatement();
s.execute(theQuery);
ResultSet rs = s.getResultSet();
答案 0 :(得分:0)
当然,当我遇到编程问题时几乎总是问题,这是我做的蠢事。
问题在于处理结果集,而不是查询。我简化了查询,但仍在处理中使用其他列。所以是的,当然它找不到专栏,我甚至没有用我的查询来拉它。
如果我不是傻瓜,我会打印整个frigging堆栈跟踪,而不仅仅是愚蠢的例外。
然后我可以找到它正在死亡的那条线。
然后只需几秒钟即可解决。
而不是,你知道,HOURS。