![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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)
Кстати, скобки стараюсь употреблять везде, кроме нуу уж очень очевидных случаев.