![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Возврат значений из хранимой процедуры [D7, MSSQL]
Ольга © (2006-10-26 14:29:00)В процедуре вычисляется куча значений. Как красиво передать их в программу?
evvcom (2006-10-27 09:19:00) [1]> [6] dr Gonzo © (26.10.06 18:18)
> ParamID - обеспечивает уникальность :)
А Var1, Var2, Var3 уже не обеспечивают? :)
> Через ОUT - не всегда удобно использовать в отчётах
Ну да. Не обратил внимания, что автор не делает даже намека, зачем ей эти данные.
dr Gonzo (2006-10-26 18:18:00) [2]2 evvcom ©
ParamID - обеспечивает уникальность :) Т.е привязка к значению идет как раз по ParamID.
SELECT Val1, Val2, Val3 - то же вариант.
Через ОUT - не всегда удобно использовать в отчётах.
evvcom (2006-10-26 16:04:00) [3]> [2] dr Gonzo © (26.10.06 14:43)
Если уж так, то UNION ALL надо использовать. А если не так, то чем тебе
SELECT Val1, Val2, Val3, ...
не понравилось? А раз уж речь идет о возвращаемых параметрах, то логичнее [3] сделать.
dr Gonzo (2006-10-26 14:46:00) [4]Еще как вариант -> походу вычислений этих значений просто выбивать их
SELECT @ParamValue1 AS ParamValue1
Потом ловить в Delphi через NextRecordSet. хорош когда разнотипные значения возвращаются.
Stanislav (2006-10-26 14:45:00) [5]Ну или так
EXEC MYSP ... :PAR1 OUT, :PAR2 OUT
AdoQuery.execute;
A:=AdoQuery.Parameters[n].Value
dr Gonzo (2006-10-26 14:43:00) [6]Вернуть обычную таблицу:
SELECT 1 AS ParamID,
@ParamValue1 AS ParamValue
UNION
SELECT 2 AS ParamID,
@ParamValue2 AS ParamValue
...
@ParamValue1, @ParamValue2 - рассчётные данные
Хорошо подходт для тех случаев, когда возвращаемые значения одного типа. Если нет, конвертить например в VarChar, что уже не так красиво.
stone (2006-10-26 14:42:00) [7]жирным шрифтом ;)