Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / insert ... returning в OO API FB3 / 4 сообщений из 4, страница 1 из 1
18.05.2017, 21:15
    #39455671
AlexCoRu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert ... returning в OO API FB3
Пытаюсь выполнить запрос:
Код: sql
1.
insert into TBD_EQUIPMENT_CLASS (ID, PARENT_ID, DESCRIPTION) values (?, ?, ?) returning ID


Готовлю, примерно так:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
tpb: array[0..3] of Byte = (isc_tpb_version3, isc_tpb_read, isc_tpb_nowait, isc_tpb_read_committed);
tpb_upd: array[0..3] of Byte = (isc_tpb_version3, isc_tpb_write, isc_tpb_wait, isc_tpb_read_committed);

transaction := attachment.startTransaction(status, 4, @tpb);
statement := attachment.prepare(status, transaction, 0, INSERT_TEXT, 3, IStatement.PREPARE_PREFETCH_METADATA)
updTransaction := attachment.startTransaction(status, 4, @tpb_upd);
resultset := statement.openCursor(status, transaction, metadata, messageBuffer, nil, 0);
updTransaction.commit(status);
updTransaction.release;


Вставка в таблицу происходит, поле ID получает нужное значение, resultset верно содержит одну запись с одним полем правильного типа, но значение -1. И до commit, и после, и commitRetaining. Что у меня не так? Дёргать генератор запросом
Код: sql
1.
select next value for GEN_EQUIPMENT_CLASS_ID from RDB$DATABASE

получается, но хочется returning.
...
Рейтинг: 0 / 0
18.05.2017, 21:18
    #39455675
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert ... returning в OO API FB3
insert не создаёт курсор. Твой запрос не возвращает ни одной записи и вообще по идее
должен выкидывать ошибку, которые ты не проверяешь.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
18.05.2017, 21:27
    #39455680
AlexCoRu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert ... returning в OO API FB3
status проверяю после каждой операции, для простоты здесь опустил.
metadata := resultset.getMetadata(status)
metadata содержит одно поле ожидаемого типа. Как иначе сделать?
...
Рейтинг: 0 / 0
18.05.2017, 22:28
    #39455705
AlexCoRu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert ... returning в OO API FB3
Через statement.execute c outputMetadata прлучилось. Спасибо за подсказку.
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / insert ... returning в OO API FB3 / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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