Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.03.18;
Скачать: CL | DM;

Вниз

IB 7.5 Напомните синтаксис использования функции в UPDATE запросе   Найти похожие ветки 

 
novill ©   (2006-12-25 12:37) [0]

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.

ЗЫ поле по типу подходит.


 
Desdechado ©   (2006-12-25 12:40) [1]

Это не функция, а процедура.
Причем возвращающая набор данных. Так что какой апдейт?


 
novill ©   (2006-12-25 12:50) [2]

> [1] Desdechado ©   (25.12.06 12:40)
> не функция, а процедура

запрос всегда возвращает одну запись с одним полем,

Как сделать апдейт, если в теле процедуры будет написано

:RES=...;


 
atruhin ©   (2006-12-25 13:13) [3]

Никак. Перенести update  в процедуру.


 
Desdechado ©   (2006-12-25 14:01) [4]

SUSPEND принуждает возвращать набор данных, пусть даже из одной строки с одним полем.
Можно попробовать:
UPDATE x
 SET y = (SELECT z FROM proc(a))
 WHERE a ...

Но не помню, прокатит ли в FB.


 
novill ©   (2006-12-25 14:42) [5]

сделал через
for select ... do
begin
 результат процедуры в переменную
 update ... //из переменной в поле
end



Страницы: 1 вся ветка

Текущий архив: 2007.03.18;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.039 c
2-1172646093
San1
2007-02-28 10:01
2007.03.18
Дуга окружности


11-1150872641
parovoZZ
2006-06-21 10:50
2007.03.18
fbsToolWindow - есть вопросы


2-1172098776
Allexandr
2007-02-22 01:59
2007.03.18
ArrangeIcons


2-1172067044
webpauk
2007-02-21 17:10
2007.03.18
Рисование


1-1169278059
TCrash
2007-01-20 10:27
2007.03.18
ScreenShot в двухмониторных системах