Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
1-54728
AlexMax
2003-04-05 17:20
2003.04.17
Всё тот же Hint


8-54760
VID
2003-01-15 14:36
2003.04.17
Установка кодеков в системе


3-54417
User_OKA
2003-04-01 15:37
2003.04.17
Сортировка


14-54829
Дмитрий К.К.
2003-03-31 11:47
2003.04.17
Именинники 29 марта


9-54386
drhdh
2002-11-15 18:09
2003.04.17
Учебник





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский