Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Новый топик    Ответить
 Передача входных параметров процедуре из Java  [new]
anjey
Member

Откуда: Прокопьевск
Сообщений: 930
Добрый день...
У меня DB2 express-c 9.1.0 на Linux-е
есть хранимая процедура:
create procedure proctest3(in name varchar(50), out id bigint)
 language sql
begin
 set id=nextval for level_0;
 insert into test.t(test.t.id, test.t.name) values(id, name);
end

пытаюсь вызвать её из приложения на java

      
 Class.forName("com.ibm.db2.jcc.DB2Driver");
 Connection con=DriverManager.getConnection("jdbc:db2://localhost:50000/tdb","username","password");
 CallableStatement cst=con. prepareCall("{call test.proctest3(?,?)}");
 cst.setString("name", data);
 cst.registerOutParameter(1,java.sql.Types.VARCHAR);
 cst.executeUpdate();

в строке 4: name - это имя входного параметра процедуры, а data - переменная типа String

получаю сообщение

err2:[ibm][db2][jcc][10183][10220] вызван метод JDBC3: Метод пока не поддерживается

ругается на строку cst.setString("id", data);

Это значит, что передавать входные параметры процедуре через JDBC-драйвер идущий вместе с Express-C не судьба ? или я вызов не правильно делаю ?

p.s.
файл jdbc драйвера: db2jcc.jar (1973658 байт)
19 окт 08, 16:57    [6326588]     Ответить | Цитировать Сообщить модератору
 Re: Передача входных параметров процедуре из Java  [new]
mustaccio
Member

Откуда: Москва -> Торонто
Сообщений: 494
Сомневаюсь, что обращение к параметрам по имени будет работать в ДБ2.

cst.setString([color=red]1[/color], data);
cst.registerOutParameter([color=red]2[/color],java.sql.Types.VARCHAR)
19 окт 08, 18:58    [6326756]     Ответить | Цитировать Сообщить модератору
 Re: Передача входных параметров процедуре из Java  [new]
Слободской Андрей
Member

Откуда:
Сообщений: 40
обращаться к параметрам надо по его номеру (начиная с 1-го)

cstmt1.setInt( 1, data );
cstmt1.registerOutParameter( 2, java.sql.Types.VARCHAR );
boolean resultCSP = cstmt1.execute();
20 окт 08, 09:00    [6327490]     Ответить | Цитировать Сообщить модератору
 Re: Передача входных параметров процедуре из Java  [new]
anjey
Member

Откуда: Прокопьевск
Сообщений: 930
Спасибо ! разобрался :)
24 окт 08, 11:57    [6351355]     Ответить | Цитировать Сообщить модератору
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Ответить