Problem v INTERBASE

4 отговора 105 прегледа
#1

Problem v INTERBASE

Imam problem s izvikvaneto na procedura v interbase i po to4no 4eteneto na rezultata:t.e.
(ima se vpredvid stored proceduri,TEMP_TABLE e predvaritelno suzdadena)
--------------------------
PROCEDURE 1
...
DELETE FROM TEMP_TABLE;
...
INSERT INTO TEMP_TABLE(..алабала)
...
--------------------------
Procedure 2
...
EXECUTE PROCEDURE 1;
SELECT COUNT(ID_TMPTBL) FROM TEMP_TABLE INTO V_RESULT WHERE bla-bla;
...
IF (V_RESULT>0) THEN edi_kvo_si....:))
----------------------------
PROBLEM !!!! V_RUSULT e VINAGI=0 (a ima zapisi v TEMP_TABLE otgovariashti na uslovieto "bla-bla")!!! zashtoto resultatite ot [PROCEDURE 1]
ne sa se COMMIT-vali sled izvikvaneto i ot [PROCEDURE 2]

IMA LI RESHENIE TOZI PROBLEM ????
gledah SET TRANSACTION v helpa... no iavno ima oshte mnogo hliab da iam...ne mojah da se oprava...sam.. :)))
predvaritelno 10x ....


Отговор
в отговор на Efex #2

Re: Problem v INTERBASE

S kakwa versiya na interbase si. Pri mene s versiya 7.1.0.131 towa si wyrwi bez problemi.

Отговор
в отговор на killall #3

Re: Problem v INTERBASE

със 6.0 съм...
всъщност целта беше да реализирам рекурсивно извикване на STORED PROCEDURE но след 4-дневна БОРБ'Ъ стигнах до там че нема друг начин освен с временна таблица, защото стека не прави копия на променливите(само предполагам но факт е че не става)...
за съжаление ми се налага да бъда със 6.0 :-(((((

Отговор
в отговор на Efex #4

Re: Problem v INTERBASE

Няма проблем с променливите при рекурсивното извикване. Всъщност в посочения откъс не виждам такова.

Затова пък виждам една грешка
Може би си искал да бъде :
SELECT COUNT(ID_TMPTBL) FROM TEMP_TABLE WHERE bla-bla into :V_RESULT;

Така, както е написано V_RESULT няма да е даже 0, а null

Редактирано от NDeu на

Отговор
в отговор на NDeu #5

Re: Problem v INTERBASE

VERI VERI 10x...
понеже съм прохождащ в SQL-a страшно ме объркват тези ":" ....
това горе не беше рекурсиа....а уж заместител....:)))
върнах се на кода с рекурсията и след редакция на точките се получи...
Още жеднъж благодаря...


Отговор