![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
IB 7.5 Напомните синтаксис использования функции в UPDATE запросе
novill © (2006-12-25 12:37:00)update TABLE1 set
field1=MYFUNC(uid)
where uid in ...
Давно не работал - забыл (
Функция объявлена
CREATE PROCEDURE MYFUNC(
UID INTEGER
RETURNS (
RES DOUBLE PRECISION)
AS
begin
select ... into :RES;
suspend;
end^
и при отдельном вызове выполняется, а в запросе получаю ошибку Function unknown.
ЗЫ поле по типу подходит.
novill (2006-12-25 14:42:00) [1]сделал через
for select ... do
begin
результат процедуры в переменную
update ... //из переменной в поле
end
Desdechado (2006-12-25 14:01:00) [2]SUSPEND принуждает возвращать набор данных, пусть даже из одной строки с одним полем.
Можно попробовать:
UPDATE x
SET y = (SELECT z FROM proc(a))
WHERE a ...
Но не помню, прокатит ли в FB.
atruhin (2006-12-25 13:13:00) [3]Никак. Перенести update в процедуру.
novill (2006-12-25 12:50:00) [4]> [1] Desdechado © (25.12.06 12:40)
> не функция, а процедура
запрос всегда возвращает одну запись с одним полем,
Как сделать апдейт, если в теле процедуры будет написано
:RES=...;
Desdechado (2006-12-25 12:40:00) [5]Это не функция, а процедура.
Причем возвращающая набор данных. Так что какой апдейт?