Форум: "Базы";
Текущий архив: 2007.01.14;
Скачать: [xml.tar.bz2];
ВнизВозврат значений из хранимой процедуры Найти похожие ветки
← →
Ольга (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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.014 c