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

Вниз

Возврат значений из хранимой процедуры   Найти похожие ветки 

 
Ольга   (2006-10-26 14:29) [0]

В процедуре вычисляется куча значений. Как красиво передать их в программу?


 
stone ©   (2006-10-26 14:42) [1]

жирным шрифтом ;)


 
dr Gonzo ©   (2006-10-26 14:43) [2]

Вернуть обычную таблицу:

SELECT 1                   AS ParamID,
          @ParamValue1 AS ParamValue
UNION  
SELECT 2                   AS ParamID,
          @ParamValue2 AS ParamValue
...

@ParamValue1, @ParamValue2 - рассчётные данные

Хорошо подходт для тех случаев, когда возвращаемые значения одного типа. Если нет, конвертить например в VarChar, что уже не так красиво.


 
Stanislav ©   (2006-10-26 14:45) [3]

Ну или так
EXEC MYSP ... :PAR1 OUT, :PAR2 OUT
AdoQuery.execute;
A:=AdoQuery.Parameters[n].Value


 
dr Gonzo ©   (2006-10-26 14:46) [4]

Еще как вариант -> походу вычислений этих значений просто выбивать их
SELECT @ParamValue1 AS  ParamValue1

Потом ловить в Delphi через NextRecordSet. хорош когда разнотипные значения возвращаются.


 
evvcom ©   (2006-10-26 16:04) [5]

> [2] dr Gonzo ©   (26.10.06 14:43)

Если уж так, то UNION ALL надо использовать. А если не так, то чем тебе
SELECT Val1, Val2, Val3, ...
не понравилось? А раз уж речь идет о возвращаемых параметрах, то логичнее [3] сделать.


 
dr Gonzo ©   (2006-10-26 18:18) [6]

2 evvcom ©

ParamID - обеспечивает уникальность :) Т.е привязка к значению идет как раз по ParamID.

SELECT Val1, Val2, Val3 - то же вариант.

Через ОUT - не всегда удобно использовать в отчётах.


 
evvcom ©   (2006-10-27 09:19) [7]

> [6] dr Gonzo ©   (26.10.06 18:18)
> ParamID - обеспечивает уникальность :)

А Var1, Var2, Var3 уже не обеспечивают? :)

> Через ОUT - не всегда удобно использовать в отчётах

Ну да. Не обратил внимания, что автор не делает даже намека, зачем ей эти данные.



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

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

Наверх




Память: 0.48 MB
Время: 0.152 c
15-1167066549
ocean
2006-12-25 20:09
2007.01.14
Программа кодирования папки


3-1161779915
SLP
2006-10-25 16:38
2007.01.14
select с разных серверов и баз данных


2-1166995336
Степан
2006-12-25 00:22
2007.01.14
Панель инструментов


2-1166921681
Fist
2006-12-24 03:54
2007.01.14
if FindFirst( *.* , faDirectory, srDir) = 0 then - находит все фа


15-1166895855
Дмитрий Игоревич
2006-12-23 20:44
2007.01.14
Delphi "рухнула"