![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Неправильный результат в процедуре [D6, IB6.x]
korvin © (2004-12-03 16:59:00)Проблема с входящим параметром. Смысл в том, чтобы сравнить введённую дату с полем OPLATA_DATA, но результат выдыёт совершенно дикий (неверно берёт значение даты). Если искомое значение подставить в скрипт процедуры "вручную" вместо
OPLATA.OPLATA_DATA=DATA_FIRSTсделатьOPLATA.OPLATA_DATA='01.12.2004'то всё работает как надо.
С хранимыми процедурами я новичёк ... подскажите, в чём мой прощёт?
Куски текста процедуры прилагаю:
ALTER PROCEDURE "P_OPLATA"
( "DATA_FIRST" DATE)
RETURNS
( "KLIENT_FULLNAME" VARCHAR(70),
"KLIENT_KOD" VARCHAR(4),
"OPLATA_SUM" NUMERIC(8, 2))
AS
begin
for select KLIENT.KLIENT_FULLNAME,
KLIENT.KLIENT_KOD,
sum(OPLATA.OPLATA_SUMA)
from KLIENT, OPLATA
where (KLIENT.KLIENT_KOD=OPLATA.KLIENT_KOD)
and (OPLATA.OPLATA_DATA=DATA_FIRST)
group by KLIENT.KLIENT_FULLNAME, KLIENT.KLIENT_KOD
into :KLIENT_FULLNAME,
:KLIENT_KOD,
:OPLATA_SUM
do suspend;
end
korvin (2004-12-03 23:25:00) [1]Я выложил только начальную часть процедуры. Вообще-то она выдаёт полный подсчитанный по каждому заказчику отчёт егооплаты всеми видами платежей, распределяя поле оплаты в базовой таблице по результирующим колонкам процедуры: Колонка оплаченной клиентом суммы по банку, колонка оплаченой суммы по кассе ...
DrPass (2004-12-03 21:00:00) [2]Вероятно, для самообразования
Johnmen (2004-12-03 20:28:00) [3]А в чём ценность данной процедуры ?
korvin (2004-12-03 18:16:00) [4]Спасибо, с двоеточием действительно лучше :)
А насчёт кавычек - всё окей будет
DSKalugin (2004-12-03 18:05:00) [5]and (OPLATA.OPLATA_DATA= тут двоеточиеDATA_FIRST)
потому что параметры в запросах пишутся с двоеточием для отличия от названия полей.
Правильно так
and (OPLATA.OPLATA_DATA= :DATA_FIRST)
Это РАС
ДВА: проконтролируй использование двойных кавычек