Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Отображение содержимого курсора в JTable / 1 сообщений из 1, страница 1 из 1
13.11.2007, 23:03:26
    #34936850
DTF
DTF
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение содержимого курсора в JTable
Здравствуйте, уважаемые форумчане!

У меня проблема:
Есть база в Oracle, есть пакет PACKAGE_1, и есть в нем функция, GetClients которая возвращает ссылку на курсор

Мне нужно отобразить в JTable содержимое этого курсора.
Помогите пожалуйста сделать это.

я пробовал писать модель таблицы вот так:

Код: 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.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
 class  MyTableModel  extends  AbstractTableModel{
    public  MyTableModel(java.sql.Connection conn) {
       try 
      {
         ocst = ( OracleCallableStatement ) conn.prepareCall("{ ? = call PACKAGE_1.GetClients(?) }", 
                                                             java.sql.ResultSet.TYPE_SCROLL_SENSITIVE, 
                                                             java.sql.ResultSet.CONCUR_UPDATABLE);
         ocst.setInt( 2 , - 1 );
         ocst.registerOutParameter( 1 , oracle.jdbc.driver.OracleTypes.CURSOR);
         ocst.execute();
         
         rs = ocst.getCursor( 1 );
         
         rsmd = rs.getMetaData();
      }
       catch  (SQLException e)
      {
      }
   }
   
    public  Object getValueAt( int  row,  int  col) {
       try  
      {
         rs.absolute(row +  1 );
          return  rs.getObject(col +  1 );
      } 
       catch  (SQLException ex) 
      {
          return   null ;
      }
   }
   
    public   int  getColumnCount() {
       try 
      {
          return  rsmd.getColumnCount();
      }
       catch  (SQLException e)
      {
          return   0 ;
      }
   }
   
    public  String getColumnName( int  col) {
       try  
      {
          return  rsmd.getColumnName(col +  1 );
      } 
       catch  (SQLException ex) 
      {
          return   null ;
      }
   }
   
    public   int  getRowCount() {
       try 
      {
         rs.last();
          return  rs.getRow();
      }
       catch  (SQLException e)
      {
         e.printStackTrace();
          return   0 ;
      }
   }
   
    protected  java.sql.ResultSet rs;
    protected  java.sql.ResultSetMetaData rsmd;
    protected  OracleCallableStatement ocst;
};

но метод getRowCount() выбрасывает исключение из-за того, что набор данных не является прокручиваемым
Как обойти эту проблему, я не знаю :(
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Отображение содержимого курсора в JTable / 1 сообщений из 1, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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