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

Вниз

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

 
Sirruf ©   (2004-04-19 18:35) [0]

Создал хранимую процедуру

CREATE PROCEDURE GETCOMMONBALANCE (
   WHOUSEID INTEGER)
RETURNS (
   WARENAME VARCHAR(20),
   BALANCE FLOAT,
   WAREUNIT VARCHAR(7))
AS
DECLARE VARIABLE WAREID INTEGER;
begin
 for select distinct WAREID from Operations
     where WHOUSEID = :WhouseID
     into :WareID
 do
   begin
     select NAME, UNIT from Goods
     where ID = :WareID
     into :WareName, :WareUnit;
     execute procedure GETBALANCE(:WhouseID, :WareID)
        returning_values :Balance;  
     if not (:Balance = 0) then (!!!)
       suspend;
   end
end

GETBALANCE - это другая хранимая процедура, отлаженная и  правильно работающая, возвращающая параметр типа Float.
При компиляции процедуры GETCOMMONBALANCE в строке (!!!) вылетает parsing error. Если закомментировать эту строку, то компиляция проходит успешно. Не могу понять, чем ему проверка на равенство нулю не подошла? :(


 
Sergey Masloff   (2004-04-19 22:14) [1]

Sirruf ©   (19.04.04 18:35)  
в IbExpert небось?
if (условие) then
 xxx;

ВСЕ условие должно быть в скобках


 
Digitman ©   (2004-04-20 08:29) [2]

if (not (Balance = 0)) then


 
Sergey_Masloff   (2004-04-20 09:52) [3]

Digitman ©   (20.04.04 08:29) [2]
>if (not (Balance = 0)) then
Ну я именно это и говорю ;-)
Дело в другом. Сейчас проверил через isql - точно требует общих скобок после if (FB 1). Я почему-то думал это IBExpert парсит что-то там (да наверное парсит потому что сообщение об ошибке не interbase-овское). Потому что у меня стойкое впечетление что IB4 это позволяла и IB5 тоже. Впрочем, не уверен так как у меня привычка к таким скобкам (после if) на уровне рефлексов ;-)


 
Соловьев ©   (2004-04-20 10:03) [4]


> select NAME, UNIT from Goods
>      where ID = :WareID

опасный код


 
Sirruf ©   (2004-04-20 11:51) [5]

Фух, ну и коварный же зверек этот IB Expert. Special thanks to Sergey Masloff и Digitman. :))
А чем опасен код

> select NAME, UNIT from Goods
>      where ID = :WareID  ?


 
Соловьев ©   (2004-04-20 12:00) [6]


> Фух, ну и коварный же зверек этот IB Expert.

это разработчики ФБ намудрили :)


> А чем опасен код

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


 
Sirruf ©   (2004-04-20 13:08) [7]

Не может, т.к. ID - primary key



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

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

Наверх




Память: 0.48 MB
Время: 0.028 c
3-1082101959
Жук
2004-04-16 11:52
2004.05.16
Label.Caption не отображается вовремя


14-1082697511
Vlad Oshin
2004-04-23 09:18
2004.05.16
Сегодня иду купаться :)


6-1080171712
DelphiCoder
2004-03-25 02:41
2004.05.16
Послать запрос на HTML- страницу


11-1069169938
S!R!X
2003-11-18 18:38
2004.05.16
Проблемы с модальной формой


3-1082094273
Артем К.
2004-04-16 09:44
2004.05.16
Как связать QReport со своим окном предварительного просмотра?