|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
FIBPlus - возврат значения из InsertReturning
Привет всем!
СУБД FB2.5 , Delphi 2010 Использую компоненту TpFIBQuery в ней такой SQL: INSERT INTO myTable (field1,field2) VALUES (val1,val2) RETURNING id Мой вопрос - как мне забрать это значение (id) с компоненты pFIBQuery ? Есть тут знатоки FIBPlus ? |
#2
|
||||
|
||||
http://www.fibplus.com/ru/fibplus/articles/4517.php
Нашёл вот что:
Цитата:
т.е после запроса в датасете последняя запись будет с новым значением генератора. Возможно придётся использовать TpFIBВDataSet, хотя TpFIBQuery тоже должен возвращать записи. Кстати обещанного примера с Returning Devrace так и не выложили на сайте, так что за ваш результат методом тыка буду очень вам признателен - Товарищ прапорщик!!! Остановите поезд!!! - Поезд СТОЙ! РАЗ! ДВА! Последний раз редактировалось Viajero, 12.08.2011 в 11:16. |
#3
|
|||
|
|||
У меня ситуация немного другая....
Я qFIBQuery делаю запрос INSRET который дублирует текущую запись, потом мне надо спозиционировать Grid на неё... Вот для этого мне и хотелось получить ID с моего qFIBQuery запроса. В данный момент я после выполнения этого запроса делаю ещё один у же с qFIBDataSet (select MAX(sn.id) max_id from spr_nomenkl sn) Ну и беру нужный мне ID уже с него... |
#4
|
||||
|
||||
А что мешает делать INSERT с этого же датасета. FIBLUS жe позволяет вставлять INSERT отдельно от SELECT, надо только опцию автогенерации запроса убрать ".AutoRewriteSQLs=false". Можно даже отдельную транзакцию на write делать (всё кроме SELECT). И IMHO дополнительный SELECT делать не нужно.
- Товарищ прапорщик!!! Остановите поезд!!! - Поезд СТОЙ! РАЗ! ДВА! Последний раз редактировалось Viajero, 12.08.2011 в 14:57. |
#5
|
|||
|
|||
Цитата:
Т.е. откуда мне это значение снять? |
#6
|
||||
|
||||
Ну так смотри первый мой пост
Цитата:
Практически я это не использовал пока поэтому 100% уверенности нет что оно работает, но судя по объяснениям DEVRACE должно быть именно так. - Товарищ прапорщик!!! Остановите поезд!!! - Поезд СТОЙ! РАЗ! ДВА! Последний раз редактировалось Viajero, 12.08.2011 в 18:53. |