Linux.by
https://forum.linux.by/

Подключение данных БД к таблице
https://forum.linux.by/viewtopic.php?f=13&t=7639
Страница 1 из 1

Автор:  monk [ 15 май 2006, 10:50 ]
Заголовок сообщения:  Подключение данных БД к таблице

Вот фрагмент кода, который у меня вызывает ошибки:

Код:
    Connection dbConn = null;
        try {
            // using the driver
            Driver d = (Driver)Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
        } catch (IllegalAccessException ex) {
            ex.printStackTrace();
        } catch (InstantiationException ex) {
            ex.printStackTrace();
        } catch (ClassNotFoundException ex) {
            ex.printStackTrace();
        }
    // URL corresponding to the ODBC DSN
    String URL = "jdbc:odbc:MYDB";
        try {
            // DB logon
            dbConn = DriverManager.getConnection(URL, "SYSDBA", "masterkey");
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    PreparedStatement  stmt;
    ResultSet rs = null;
        try {
            stmt = dbConn.prepareStatement("select * from tbl_client");
            rs = stmt.executeQuery();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }

    // TableModel definition
    String[] tableColumnsName = {"id_client","xname"};
    DefaultTableModel aModel = (DefaultTableModel) jTable1.getModel();
    aModel.setColumnIdentifiers(tableColumnsName);
        java.sql.ResultSetMetaData rsmd;
        try {
            rsmd = rs.getMetaData();
            int colNo = rsmd.getColumnCount();
            while(rs.next()){
                Object[] objects = new Object[colNo];
//                System.out.println(rs.getString("id_client"));
//                System.out.println(rs.getString("xname"));
                for(int i=0;i<colNo;i++){
//                    System.out.println(rs.getString("id_client"));
                    objects[i]=rs.getObject(i);
                }
                aModel.addRow(objects);
            }
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
        jTable1.setModel(aModel);


Вопрос первый.
Когда наименования данных в таблице представлены как русскоязычные, программа "падает" на строке rs.next().
Почему и как исправить ?

Вопрос второй.
При попытке выполнения objects[i]=rs.getObject(i); возникает исключение java.sql.SQLException: [Microsoft][ODBC Driver Manager] Invalid descriptor index.
Пример работы с JTable и setModel() взял со стороны, поэтому за него "зуб дать" не могу.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/