Форум: "Базы";
Текущий архив: 2003.04.17;
Скачать: [xml.tar.bz2];
ВнизПроблема с записями... Найти похожие ветки
← →
softmaster (2003-03-25 18:26) [0]Народ, всем привет!
Подскажите- подхватил проект, и начинаются траблы
Суть - есть таблица SALES-фиксирует документы на продажу
товара со склада.
Подчинена ей табл. SALITEMS-фиксирует, какие товары на
какой документ ушли.
Проблема- открываю SALES EDITом, правлю, затем POST
c присвоением статуса ОПЛАЧЕНО.
после этого у меня в базе хранимая пройцедура
списывает количество товара , соответствующее
в SALITEMS<==>SALES.
Проблема в том, что процедура списывает в ДВА раза
большее кол-во товара, чем забито в таблице.
В чем может быть дело?...
← →
MsGuns (2003-03-25 20:51) [2]Во-первых, ошибка в самой процедуре (она должна сначала возвращать на склад (OLDValue), а затем снимать (NEWValue).
Во-вторых, проверь триггера
Ну и посмотри, конечно, код проги.
Но главная ошибка - гуля в алгоритме процы.
← →
softmaster (2003-03-26 07:32) [3]Да нет, самый прикол, что после перезагрузки проги и вычисления остатков- все становится на свои места- в чем может быть еще дело?
← →
Sergey13 (2003-03-26 08:58) [4]Это явно чеченский след. Ошибок может быть две:
1. в D5
2. В IB5.х
Но автор обеих - ты.
8-)
← →
Mike_Goblin (2003-03-26 09:18) [5]Приведи код хранимой процедуры, а то штатные телепаты в отпуске :))
← →
softmaster (2003-03-28 13:05) [6]Вот код процедуры
CREATE PROCEDURE OBOROT_WED (
DAY DATE,
DAY_NACH DATE)
RETURNS (
CODE VARCHAR(40),
NAME VARCHAR(50),
KOLWO_PRIHOD_OST INTEGER,
KOLWO_RASHOD_OST INTEGER,
OSTATOK_OST INTEGER,
KOLWO_PRIHOD INTEGER,
KOLWO_RASHOD INTEGER,
OSTATOK INTEGER)
AS
begin
for select Code, Name from Units
into :Code, :Name
do
begin
kolwo_Prihod=null;
kolwo_Rashod = null;
kolwo_Prihod_ost=null;
kolwo_Rashod_ost = null;
select sum (SI.UnitCount) from SalItems SI, Sales S
where SI.UnitCode = :Code and SI.SalDocNum = S.DocNum and S.Dat_ <= :day
and
((S.Stat="Оплачено") or (S.Stat="Возврат"))
into :kolwo_Rashod_ost;
if (kolwo_Rashod_ost is null) then Kolwo_Rashod_ost = 0;
select sum (UI.UnitCount) from upitems UI, updates U
where UI.UnitCode = :Code and UI.UpDocNum = U.DocNum and U.Dat_ <= :day
and U.Stat="Оприходовано"
into :kolwo_Prihod_ost;
if (kolwo_Prihod_ost is null) then Kolwo_Prihod_ost = 0;
ostatok_ost = :Kolwo_Prihod_ost-:Kolwo_Rashod_ost;
select sum (SI.UnitCount) from SalItems SI, Sales S
where SI.UnitCode = :Code and SI.SalDocNum = S.DocNum and S.Dat_ between :day and :day_nach
and ((S.Stat="Оплачено") or (S.Stat="Возврат"))
into :kolwo_Rashod;
if (kolwo_Rashod is null) then Kolwo_Rashod = 0;
select sum (UI.UnitCount) from upitems UI, updates U
where UI.UnitCode = :Code and UI.UpDocNum = U.DocNum and U.Dat_ between :day and :day_nach
and U.Stat="Оприходовано"
into :kolwo_Prihod;
if (kolwo_Prihod is null) then Kolwo_Prihod = 0;
ostatok = :Kolwo_Prihod-:Kolwo_Rashod+:ostatok_ost;
update units
set units.Vsklad=:ostatok
where units.code = :code;
suspend;
end
end
← →
softmaster (2003-03-30 09:44) [7]Вот код, что тут может быть не так?
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.04.17;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c