Java で次のクエリを実行すると、Java はテーブルの最初のエントリのみをエラーなしで返します。しかし、同じクエリを Access にコピーすると、Access は 33 エントリすべてを返します。
クエリ:
SELECT Country, Sum(SumOfNumber) AS number FROM CountryList WHERE Year=2012 AND (Month=1 Or Month=2 Or Month=3) AND Entity='xxx' GROUP BY Country ORDER BY Sum(SumOfNumber) DESC
rs.last();
System.out.println(rs.getRow());
1 を返します。
何かアドバイス?
さて、私は「ORDER BY Sum(SumOfNumber) DESC」を削除し、Javaはすべての国を返し、最後に「無効なカーソルステータス」という例外をスローしました
public void doconnect(){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
conn = DriverManager.getConnection(ConnectURL,user,pw);
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
String query = "SELECT Country, Sum(SumOfNumbers) AS number FROM CountryList WHERE Year=2012 AND (Month=1 Or Month=2 Or Month=3) AND Entity='xxx' GROUP BY Country ORDER BY Sum(SumOfNumbers) DESC";
System.out.println(query);
ResultSet rs = stmt.executeQuery(query);
while(rs.next()){
System.out.println(rs.getString("Country"));
}
rs.close();
}
catch(Exception e){
System.err.println(e);
e.printStackTrace();
}
finally{
if(conn!=null){
try{
conn.close();
}
catch(Exception e){
e.printStackTrace();
}
}
}
}