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

Вниз

Хранимая процедура   Найти похожие ветки 

 
Пользователь   (2002-05-21 09:49) [0]

IB6
ПОдскажите кде ошибка?
Не вставляються данные
в выборку они попадают, расчитываються а запись их не происходит

CREATE PROCEDURE RASCHET (
DATARAS DATE,
DATANACH DATE)
AS
DECLARE VARIABLE A NUMERIC(10,2);
DECLARE VARIABLE C NUMERIC(10,2);
DECLARE VARIABLE D NUMERIC(10,2);
DECLARE VARIABLE E NUMERIC(10,2);
DECLARE VARIABLE F NUMERIC(10,2);
DECLARE VARIABLE G NUMERIC(10,2);
DECLARE VARIABLE H NUMERIC(10,2);
DECLARE VARIABLE I NUMERIC(10,2);
DECLARE VARIABLE J NUMERIC(10,2);
DECLARE VARIABLE M NUMERIC(10,2);
DECLARE VARIABLE N NUMERIC(10,2);
DECLARE VARIABLE KODR INTEGER;
DECLARE VARIABLE KOD INTEGER;
DECLARE VARIABLE B INTEGER;
DECLARE VARIABLE ARSUB NUMERIC(10,2);
DECLARE VARIABLE SUMRAS NUMERIC(10,2);
DECLARE VARIABLE SUMAR NUMERIC(10,2);
DECLARE VARIABLE SUMSYB NUMERIC(10,2);
begin

delete from lschet where datanash=:dataras;
suspend;
for select kodarenda,
area, /* a */
kizn, /* c */
kmat, /* d */
ktipzd, /* e */
kkomf, /* f */
ktehob, /* g */
kraion, /* h */
kisparob, /* i */
ksubar, /* j */
stavka, /* m */
stavkamin /* n */
from arenda
where :DATARAS <= srokend and :DATAnach >= srokstart /*определить диапазон дат */
into :kodr,:a,:c,:d,:e,:f,:g,:h,:i,:j,:m,:n
do begin
/* проверка на субаренду */
select kodsubar from subar
where kodarenda=:kodr
into :b;
if (:b is not null) then
begin
select areasub from subar
where kodsubar=:b and :DATARAS<=dataend and :DATAnach>=datastart /*определить диапазон дат */
into :arsub;
end
else arsub=0;
/* расчет суммы */
if (:arsub=0) then
sumras=:m*:c*:d*:e*(:f+:g)*:h*:i*:a;
else
begin
sumar=:m*:c*:d*:e*(:f+:g)*:h*:i*(:a-:arsub);
sumsyb=:arsub*:j;
sumras=sumar+sumsyb;
end
/* вставляем расчетные данные */
kod=gen_id(newlschet,1);
insert into lschet (kodlschet,kodarenda,symma,datanash)
values(:kod,:kodr,:sumras,:DATARAS);
end
end


 
Johnmen ©   (2002-05-21 10:10) [1]

>>> sumras=sumar+sumsyb;

sumras=:sumar+:sumsyb;


 
kaif ©   (2002-05-21 14:31) [2]

Если какой-то из IF-ов, например
if (:arsub=0) then
содержит сравнение с NULL, то это может не сработать, так как любое сранение с NULL дает False.
Аккуратно проверь все IF-ы


 
Awex ©   (2002-05-21 16:08) [3]

delete from lschet where datanash=:dataras;
>>>suspend;
Обясните зачем сдесь это ?



Страницы: 1 вся ветка

Текущий архив: 2002.06.13;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.011 c
14-40170
Феликс
2002-05-07 18:26
2002.06.13
Как


6-40127
DikobraZ
2002-03-29 23:10
2002.06.13
Как настроить NMSMTP?


1-40087
andrey_k
2002-06-03 02:16
2002.06.13
HELP!!! SOS!!!!


1-40045
Ascan
2002-05-31 18:19
2002.06.13
WebBrowser засыпает...


14-40181
vajo
2002-05-13 10:04
2002.06.13
Проблема с проводником в Win XP