DenisConqueror
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору jonikDk Цитата: table(1,2,3) это так поля называются в таблице ? У меня возвращад id . Должны быть выставлены еще опции в OraQuery типа ReturnParams как то так называется | ну это пример) поля называются по другому, факт что в них нет этого самого ID Могу и из реальных таблиц примеров наприводить. Насчет опций, это в реалтайме через код надо задавать? или в редакторе? ну и куда в итоге вернется ID, в OraQuery1.ParamByName('ID') или FieldByName? Ну и последний к вам вопрос, ODAC какой версии? может у меня все устарело) ZalivkoDenis Цитата: А в Вашем случае он (ParamByName('ID')) и будет всегда пустым, потому как входных-то нет А ParamByName используется именно для in-параметров | Так в том-то и дело, что FieldByName тоже пустота... alexsob Цитата: Вроде как такое SQL-предложение некорректно выполнять с помощью OraQuery или SmartQuery. Для RETURNING либо специально заморачиваешься в т.числе с ReturnParams, либо делаешь так: OraSession.ExecSQL('begin INSERT INTO table1 (1,2,3) VALUES(1,2,3) RETURNING ID INTO :ID; end;'); ShowMessage(OraSession.paramByName('ID').AsString); И будет тебе счастье | Попробую, спасибо) Если работает, действительно будет счастье). UPD: попробовал... у OraSession.ExecSQL есть второй парметр, но так ка входных нет, то просто задаем []. Спасибо большое, работает. Кстати, у квери если задать ReturnParams в тру, все равно ничего не возвращается, ни в параметрах, ни в филдах... UPD2: соврал, вторым параметром обязательно надо указать что-то, иначе ничего не возвращатеся. Вот как-то так) OraSession.ExecSQL('begin INSERT INTO table1 (1,2,3) VALUES(1,2,3) RETURNING ID INTO :ID; end;',[id]); где id переменная. | Всего записей: 19 | Зарегистр. 17-05-2009 | Отправлено: 13:17 10-08-2010 | Исправлено: DenisConqueror, 18:38 10-08-2010 |
|