0

JTable に DButils を設定する MS Access データベースへの JDBC:ODBC 接続があります。私の基本的な SQL クエリは、COUNT 関数を試すまでは問題なく動作しますが、JTable に入力しようとするとエラーが発生します。クエリは JTextArea を設定するために正常に機能するため、クエリが問題ないことはわかっています。私のコードは下にあり、助けていただければ幸いです。

    import javax.swing.JFrame;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import java.sql.*;
    import net.proteanit.sql.DbUtils;

public class table {
    Connection con;
    Statement st;
    ResultSet rs;

    public table(){
        connect();
    }
    public void connect(){

        JTable tbl = new JTable();
        tbl.setDefaultEditor(Object.class, null);
        JFrame resFrame = new JFrame("Results");
        resFrame.setLayout(null);
        resFrame.setSize(525, 445);
        resFrame.setVisible(true);
        JScrollPane tsp = new JScrollPane(tbl);
        tsp.setLocation(20, 20);
        resFrame.add(tsp);
        tbl.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        tsp.setSize(370,375);

        String sql = "SELECT Club, COUNT('memberID') AS total FROM Members_Table, Club_Table WHERE Club_Table.clubID=Members_Table.clubID GROUP BY Club";

        try{

            String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
            Class.forName(driver);
            String db = "jdbc:odbc:ITUKdb";
            con = DriverManager.getConnection(db);
            st = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
            rs = st.executeQuery(sql);
            tbl.setModel(net.proteanit.sql.DbUtils.resultSetToTableModel(rs));
        }catch(Exception ex){

        }
    }
}

私が得るエラーは以下のとおりです

java.sql.SQLException: [Microsoft][ODBC Driver Manager] Invalid cursor state
    at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6956)
    at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7113)
    at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(JdbcOdbc.java:3906)
    at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(JdbcOdbcResultSet.java:5697)
    at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:353)
    at sun.jdbc.odbc.JdbcOdbcResultSet.getObject(JdbcOdbcResultSet.java:1677)
    at net.proteanit.sql.DbUtils.resultSetToTableModel(DbUtils.java:28)
    at trial.table.connect(table.java:53)
    at trial.table.<init>(table.java:22)
    at trial.ITUKSQL.main(ITUKSQL.java:212)
4

1 に答える 1

0

並べ替えは削除する必要がありました

ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE

から

 st = con.createStatement();
于 2012-08-16T14:19:02.280 に答える