Главная страница
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.058 c
2-1172147154
TStas
2007-02-22 15:25
2007.03.18
Как программно разрарить файл fileName в папку Folder?


15-1171739354
ANTPro
2007-02-17 22:09
2007.03.18
Книги


15-1172167725
Владимир Березин
2007-02-22 21:08
2007.03.18
Как объяснить странное поведение TMenuItem?


1-1169464262
Степан
2007-01-22 14:11
2007.03.18
Запись в автозапуск


15-1171741571
lookin
2007-02-17 22:46
2007.03.18
Приветствую