Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / CallableStatement и RollBack подскажите / 4 сообщений из 4, страница 1 из 1
08.11.2006, 09:41:55
    #34110968
DIMA11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CallableStatement и RollBack подскажите
Ситуация следующая:
есть оракловская процедурка со входными и выходными параметрами, которую я вызываю следубщим образом:

String query = "declare " +
"id number; " +
"name_session varchar2(1024); " +
"name_end_text varchar2(5024); " +
"text_exit varchar2(1024); " +
"error_text varchar2(1024); " +
"BEGIN " +
"set_out_umd_no_type (?, 1, ?, name_session, " +
"?, text_exit, ?); END;";

CallableStatement cs;
String result;
try
{
cs = Conn.prepareCall(query);
cs.setString(1, proper);
cs.registerOutParameter(2, OracleTypes.NUMBER);
cs.registerOutParameter(3, OracleTypes.VARCHAR);
cs.registerOutParameter(4, OracleTypes.VARCHAR);
cs.execute();

String err = cs.getString(4);
if(!cs.wasNull())
{
long id = cs.getLong(2);
if (id > 0)
{
cs = Conn.prepareCall("Rollback");
cs.execute();

}
}
...
}
catch(SQLException e)
{
JOptionPane.showMessageDialog(null,
e.getMessage(), "SQLException",
JOptionPane.ERROR_MESSAGE);
return null;
}

При выполнении процедура меняет данные и в некоторых случаях необходим откат, который провожу как показано выше. НО!! отката не происходит!!
Подскажите, плиз, в чем моя ошибка.
...
Рейтинг: 0 / 0
08.11.2006, 10:03:32
    #34111040
DAA
DAA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CallableStatement и RollBack подскажите
Может быть так?
Код: 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.
CallableStatement cs;
String result;
 try  {

  Conn.setAutoCommit(false);

  cs = Conn.prepareCall(query);
  cs.setString( 1 , proper);
  cs.registerOutParameter( 2 , OracleTypes.NUMBER);
  cs.registerOutParameter( 3 , OracleTypes.VARCHAR);
  cs.registerOutParameter( 4 , OracleTypes.VARCHAR);
  cs.execute();

  String err = cs.getString( 4 );

   if (!cs.wasNull())
  {
     long  id = cs.getLong( 2 );
     if  (id >  0 ) {
      Conn.rollback();
    }  else  {
      Conn.commit();
    }
  }
...
}
 catch (SQLException e) {
  JOptionPane.showMessageDialog( null , e.getMessage(), "SQLException", JOptionPane.ERROR_MESSAGE);
   return   null ;
}
...
Рейтинг: 0 / 0
08.11.2006, 10:06:40
    #34111057
DIMA11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CallableStatement и RollBack подскажите
DAA, спасибо. сейчас попробую...
...
Рейтинг: 0 / 0
08.11.2006, 10:16:11
    #34111084
DIMA11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CallableStatement и RollBack подскажите
Проблема была как раз в наличии автокоммита!! Еще раз спасибо за совет.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / CallableStatement и RollBack подскажите / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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