Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Запрос на вставку записи с ключевым словом returning / 13 сообщений из 13, страница 1 из 1
27.01.2006, 14:51
    #33507703
I am Razor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на вставку записи с ключевым словом returning
Господа, често говоря заипалсо прообовать выполнить insert в БД с возвращением ключа(генерящегося триггером)
Пишу так:
Код: plaintext
1.
2.
3.
4.
PreparedStatement Ins = Conn.prepareStatement("insert into table(..,..)  values(..,..) returning KeyField into ?",Statement.RETURN_GENERATED_KEYS);
Ins.execute();
 int  ID=Ins.getResultSet().getInt( 1 );
Ins.close();
Говорит, что не все переменные привязаны, или что "неподдерживаемая функция"
...
Рейтинг: 0 / 0
27.01.2006, 15:01
    #33507745
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на вставку записи с ключевым словом returning
Какая база?
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
27.01.2006, 15:04
    #33507755
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на вставку записи с ключевым словом returning
в sql нифига не секу, но сдается мне, надо begin ... end добавить, по
крайней мере у нас именно так запросы сделаны

-----------------------------------
The Bat + My Gate

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
27.01.2006, 15:12
    #33507787
I am Razor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на вставку записи с ключевым словом returning
БД - Oracle
begin ... end; вставил - та же фигня: "не поддерживаемая функция"
В чём дело-то?????
...
Рейтинг: 0 / 0
27.01.2006, 15:14
    #33507794
I am Razor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на вставку записи с ключевым словом returning
Может надо CallableStatement использовать??, сдаётся мне, что он begin'ы должен понимать...
...
Рейтинг: 0 / 0
27.01.2006, 15:19
    #33507817
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на вставку записи с ключевым словом returning
/topic/255165#2285871

Откомментарь там второй, рабочий запрос.
...
Рейтинг: 0 / 0
27.01.2006, 15:37
    #33507884
I am Razor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на вставку записи с ключевым словом returning
Благодарю, я разобрался в чём дело: забыл поставить ";" после знака "?" :)
мдаа, видимо, пятница сёдня...
...
Рейтинг: 0 / 0
27.02.2006, 13:47
    #33567813
Pane
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на вставку записи с ключевым словом returning
I_am_Razor, какая у вас версия JDK?
Можете ли выложить работающий код разрешения вашей проблемы... пожалуйста!
...
Рейтинг: 0 / 0
27.02.2006, 18:25
    #33568843
I am Razor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на вставку записи с ключевым словом returning
Да запросто!
Код: plaintext
1.
2.
3.
4.
5.
6.
//sb - это StringBuffer, в котором ВЫ можете собрать свой зарос с returning
CallableStatement ST = Conn.prepareCall("begin\n"+sb.toString()+"\nend;");
ST.registerOutParameter( 1 ,Types.NUMERIC);
ST.execute();
ST.close();
ST= null ;
Вот и ФСЁ! Главное, чтоб в конце была ";", т.к. если база данных - Oracle, то надоть чтоб он понял, что если есть begin и end, то это уже не запрос, а блок PL!
...
Рейтинг: 0 / 0
27.02.2006, 19:24
    #33568997
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на вставку записи с ключевым словом returning
I am RazorCallableStatement ST = Conn.prepareCall("begin\n"+sb.toString()+"\nend;");
Если не ошибаюсь, в этом коде упущен один принципиальный момент.

Код: plaintext
 + sb.toString() + ";" + "\nend;")
...
Рейтинг: 0 / 0
28.02.2006, 07:17
    #33569477
Pane
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на вставку записи с ключевым словом returning
I_am_Razor, вы же говорили, что у вас получилось это сделать с использованием PreparedStatement. Не могли ли вы выложить код с использованием именно этого компонента?
Спасибо!
...
Рейтинг: 0 / 0
28.02.2006, 08:59
    #33569589
I am Razor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на вставку записи с ключевым словом returning
Нет, вот с PreparedStatement ничего не получилось. Используйте класс CallableStatement.
...
Рейтинг: 0 / 0
28.02.2006, 09:09
    #33569613
I am Razor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на вставку записи с ключевым словом returning
softwarer I am RazorCallableStatement ST = Conn.prepareCall("begin\n"+sb.toString()+"\nend;");
Если не ошибаюсь, в этом коде упущен один принципиальный момент.

Код: plaintext
 + sb.toString() + ";" + "\nend;")

Вообще-то нет: строка sb может содержать запрос с ретурнинг, где после знака вопросика стоит ";"(по крайней мере у меня так сделано), но можно точку с запятой поставить явно с prepareCall(тогда её нужно убрать из запроса :))
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Запрос на вставку записи с ключевым словом returning / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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