Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.066 c
15-1167059135
oldman
2006-12-25 18:05
2007.01.14
Ну почему люди не хотят делать так?...


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


4-1156808336
Servelat
2006-08-29 03:38
2007.01.14
как зная HBITMAP получить ширину/высоту картинки


2-1166974460
AzzHell
2006-12-24 18:34
2007.01.14
Как зделать чтобы прога при работе занимала меньше оперативы?


2-1167052236
Trible
2006-12-25 16:10
2007.01.14
отослать сообщение процесу, созданного с CreateProcess




   Наверх