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

Вниз

Не пойму как возвратить результат запроса   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.026 c
14-1108029717
DVM
2005-02-10 13:01
2005.03.06
Черкизовский рынок горит. Пламя до 5 этажа.


1-1109077764
Pafnuty
2005-02-22 16:09
2005.03.06
Запись в registry


1-1108986124
Object
2005-02-21 14:42
2005.03.06
Ошибка при удалении Panel с формы.


14-1108116536
DelphiNew
2005-02-11 13:08
2005.03.06
Оптимизация кода


4-1106544847
pmm
2005-01-24 08:34
2005.03.06
Проблемы с CreateFileMapping и MapViewOfFile