Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / JDBCAdapter / 5 сообщений из 5, страница 1 из 1
14.10.2005, 00:35
    #33323923
Sherst
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JDBCAdapter
Привет всем!
Не могу разобраться с классом JDBCAdapter.Я использую этот класс вместе с JTable.Иногда возникает необходимость в редактировании ячейки в JTable.
Для того чтобы изменения в JTable сохранялись в БД я раскоментировал строку
251 (statement.executeQuery(query)),при редактировании ячейки выводится
в консоль UPDATE запрос(System.out.println(query)),все правильно,а вот никаких изменений в БД я не вижу.Поправьте если я что-то делаю не так.
Заранее спасибо.
...
Рейтинг: 0 / 0
14.10.2005, 09:16
    #33324091
А.Грасоff™
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JDBCAdapter
м.б., connection.commit()?
...
Рейтинг: 0 / 0
14.10.2005, 10:49
    #33324332
Sherst
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JDBCAdapter
Я закоментировал содержимое блока catch(...) в методе setValueAt() поэтому не увидел описание прерывания,вот какая ошибка вылетает при редактировании ячейки таблицы JTable:

interbase.interclient.SQLException: [interclient][interbase] Dynamic SQL Error
SQL error code = -206
Column unknown
СОДЕРЖИМОЕ_ЯЧЕЙКИ_КОТОРУЮ_РЕДАКТИРУЮ

Приведу код метода setValueAt(...)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
  public   void  setValueAt(Object value,  int  row,  int  column) {
         try  {
            String tableName = metaData.getTableName(column+ 1 );
             if  (tableName ==  null ) {
                System.out.println("Table name returned null.");
            }
            String columnName = getColumnName(column);
            String query =
                "update "+tableName+
                " set "+columnName+" = "+dbRepresentation(column, value)+
                " where ";	  
             for ( int  col =  0 ; col<getColumnCount(); col++) {
                String colName = getColumnName(col);
                 if  (colName.equals("")) {
                     continue ;
                }
                 if  (col !=  0 ) {
                    query = query + " and ";
                }
                query = query + colName +" = "+
                    dbRepresentation(col, getValueAt(row, col));
            }
            System.out.println(query);
            statement.executeQuery(query);
	    connection.commit();
        }
         catch  (SQLException e) {
              e.printStackTrace();
        }       

        Vector dataRow = (Vector)rows.elementAt(row);
        dataRow.setElementAt(value, column);
    }

Что можете посоветовать.
...
Рейтинг: 0 / 0
14.10.2005, 11:50
    #33324582
Timm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JDBCAdapter
вместо
Код: plaintext
statement.executeQuery();
напиши
Код: plaintext
statement.executeUpdate();
...
Рейтинг: 0 / 0
14.10.2005, 12:21
    #33324718
Sherst
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JDBCAdapter
Разобрался :)
Спасибо всем кто отозвался.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / JDBCAdapter / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]