Форум: "Базы";
Текущий архив: 2005.03.06;
Скачать: [xml.tar.bz2];
ВнизНе пойму как возвратить результат запроса Найти похожие ветки
← →
dreamse (2005-02-08 09:49) [0]В общем код процедуры SQL такой :
CREATE procedure summaperioda (@numberperiod int)
as
select sum(cast(summa as money)) from Tab_jurnalseansov
where period = @numberperiod
GO
я передаю туда параметр @numberperiod и в соответствии с ним идёт подсчёт данных по столбцу summa
Код Delphi такой :
Ado_proc_kassa.CommandText:="summaperioda";
Ado_proc_kassa.Parameters.Refresh;
Ado_proc_kassa.Parameters.ParamByName("@numberperiod").Value:=10;
Ado_proc_kassa.Execute;
Вопрос как в переменную вернуть значение полученное в результате выполенения процедуры SQL сервера ?
← →
Rob (2005-02-08 10:07) [1]CREATE procedure summaperioda (@numberperiod int)
as
select sum(cast(summa as money)) my_sum from Tab_jurnalseansov
where period = @numberperiod
GO
На клиенте что-то типа:
var My_Sum: currency;
Query1.SQL.Add("exec summaperioda и т.д.
Query1.Open;
My_Sum:=Query1.FieldByName("my_sum ").AsCurrency;
← →
MOA © (2005-02-08 10:12) [2]Результат вернётся в виде рекордсета.
Т.е. вызывайте процедуру из компонента, возвращающего рекордсет (т.е. наследника DataSet, (но не TADOCommand) - а значит, и не Execute, а Open (или Active=True) (exec владелец.Имя_процедуры).
PS. Если у вас MSSQL2000 то, ПМСМ, удобнее подобные вещи выполнять в виде не процедур, а функций.
Удачи!
← →
dreamse (2005-02-08 10:48) [3]Спасибо !
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.03.06;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.043 c