Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Delete не любит длинное условие [D7, FB]


Basic ©   (2003-05-24 02:38:00) 

при создании процедуры через IBQuery парсер выдает ошибку
bad parameter number на строку DELETE, а SELECT проходит нормально, условия у них одинаковые
SELECT CNTSLD FROM CUR_SLD
WHERE CDCUSTOM = :CD_CUSTOM AND CDPOSOB = :CD_POSOB
INTO NAL_KOL_VO;
DELETE FROM CUR_SLD
WHERE CDCUSTOM = :CD_CUSTOM AND CDPOSOB = :CD_POSOB;
причем если ставлю просто
WHERE CDCUSTOM = :CD_CUSTOM
или
WHERE CDPOSOB = :CD_POSOB
то пропускает без ошибки, как это лечить


Alexandr   (2003-05-26 06:39:00) [1]

а то...ж


Basic   (2003-05-25 17:26:00) [2]

> Alexandr © (24.05.03 09:25)
а ведь работает.
Спасибо


Alexandr   (2003-05-24 09:25:00) [3]

отключи paramCheck вообще у IBQuery


Basic   (2003-05-24 08:51:00) [4]

полностью будет
CREATE PROCEDURE SP_ADD_CUR_SLD
(CD_CUSTOM INTEGER,CD_POSOB CHAR(20),KOL_VO INTEGER)
AS
DECLARE VARIABLE NAL_KOL_VO INTEGER;
BEGIN
SELECT CNTSLD FROM CUR_SLD
WHERE CDCUSTOM = :CD_CUSTOM AND CDPOSOB = :CD_POSOB
INTO NAL_KOL_VO;
IF (:NAL_KOL_VO <> 0) THEN
IF (:NAL_KOL_VO + :KOL_VO = 0 ) THEN
DELETE FROM CUR_SLD
WHERE CDCUSTOM = :CD_CUSTOM AND CDPOSOB = :CD_POSOB;
ELSE
UPDATE CUR_SLD SET CNTSLD = CNTSLD + :KOL_VO
WHERE CDCUSTOM = :CD_CUSTOM AND CDPOSOB = :CD_POSOB;
ELSE
INSERT INTO CUR_SLD (CDCUSTOM, CDPOSOB,CNTSLD)
VALUES (:CD_CUSTOM,:CD_POSOB,:KOL_VO);
END


Alexandr   (2003-05-24 08:25:00) [5]

бред какой-то.
напиши конкретно запрос. А то намешал все в кучу. и непонятно, чего ты в IBQuery пишешь...


Basic   (2003-05-24 03:34:00) [6]

>Нуу (24.05.03 03:22)
такое уже делал, тот же эффект
Еще варианты есть???


Нуу   (2003-05-24 03:22:00) [7]

не работал в IBQuery, но всегда пишу:
WHERE (SomeField1 = :SomeParameter1) AND (SomeField2 = SomeParameter2)
Кстати, скобки стараюсь употреблять везде, кроме нуу уж очень очевидных случаев.


Наверх

Титульная страница Поиск, карта сайта Написать письмо