Вниз
Скачать: CL | DM;

Левое внешнее объединение 2х хранимых процедур   Найти похожие ветки 

← →
Avreliy   (2003-08-12 18:13) [0]

Здравствуйте мастера!
Не могу понять, что неправильно в следующем коде:(отрывок ХП)
--------------------------------------------------
..
BEGIN
DELETE FROM DEPP;
Temp = GEN_ID(DEPNO_GEN, -GEN_ID(DEPNO_GEN, 0));
INSERT INTO DEPP(EMPLOYEENO, POST, SURNAME, SUMM, QTY, TOTALSUMM)
SELECT SP1.EMPLOYEENO, SP1.POST, SP1.SURNAME, SP1.SUMM,
SP1.QTY, SP2.TOTALSUMM
FROM SP_DEPP_DATE_ALL(:DEP, :DAT) SP1 LEFT OUTER JOIN
SP_DEPP_DATE_TOTALSUMM(:DEP, :DAT) SP2 ON SP1.EMPLOYEENO = SP2.EMPLOYEENO;
END^

--------------------------------------------------
Не хочет возвращать данные. Но вот, если левое внешнее объединение заменить внутренним, то всё работает.
--------------------------------------------------
..
BEGIN
DELETE FROM DEPP;
Temp = GEN_ID(DEPNO_GEN, -GEN_ID(DEPNO_GEN, 0));
INSERT INTO DEPP(EMPLOYEENO, POST, SURNAME, SUMM, QTY, TOTALSUMM)
SELECT SP1.EMPLOYEENO, SP1.POST, SP1.SURNAME, SP1.SUMM,
SP1.QTY, SP2.TOTALSUMM
FROM SP_DEPP_DATE_ALL(:DEP, :DAT) SP1, SP_DEPP_DATE_TOTALSUMM(:DEP, :DAT) SP2
WHERE SP1.EMPLOYEENO = SP2.EMPLOYEENO;
END^

--------------------------------------------------
В то же время запрос
--------------------------------------------------

SELECT SP1.EMPLOYEENO, SP1.POST, SP1.SURNAME, SP1.SUMM,
SP1.QTY, SP2.TOTALSUMM
FROM SP_DEPP_DATE_ALL(:DEP, :DAT) SP1 LEFT OUTER JOIN
SP_DEPP_DATE_TOTALSUMM(:DEP, :DAT) SP2 ON SP1.EMPLOYEENO = SP2.EMPLOYEENO;

--------------------------------------------------
работает правильно.


← →
Desdechado ©   (2003-08-12 19:52) [1]

попробуй явное приведение типов


← →
kaif ©   (2003-08-13 00:09) [2]

А отдельно select-запрос (без insert-а) работает?
Или дает ошибку no current record for fetch operation?
Вообще объединения процедур иногда работают неправильно. Особенно левые. Можно попытаться изменить и текст самих процедур. Иногда это помогает. Например, у меня бывали проблемы с union внутри процедур.


← →
kaif ©   (2003-08-13 00:13) [3]

Извиняюсь, проглядел... Сам запрос работает. Это уже хуже. А что значит не хочет возвращать данные? Ошибку генерит или просто ничего не инсертит?


← →
Praco ©   (2003-08-13 09:03) [4]

http://www.ibase.ru/devinfo/dontdoit.htm
Посмотри п.14
Может это твой случай?



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.012 c
14-10901
Карелин Артем
2003-08-18 13:40
2003.09.04
Ищу компонент.


3-10607
Владий
2003-08-13 15:14
2003.09.04
Помогите разрешить проблему...


1-10826
JS
2003-08-21 17:06
2003.09.04
BoundsChecker


1-10764
acsoft
2003-08-24 12:14
2003.09.04
Вопросы по TWebBrowser


11-10661
Ал
2002-12-26 09:22
2003.09.04
Глюк KOLForm?




   Наверх