Op Sybase 12.5.1 heb ik een stored procedure die een andere stored procedure oproept. De bedoeling is dat de eerste mogelijke errors van de tweede opvangt.
Als voorbeeld geef ik hier de 2 stored procedures:
Als ik STP_Caller nu oproep, dan zou ik verwachten om de tekst "Error occured and captured" te zien verschijnen (tussen de foutboodschappen door), maar dat gebeurt dus niet. Eens de fout opgetreden is in STP_Called, stopt de hele uitvoering en krijgt de error-handling code in STP_Caller niet eens de kans zijn werk te doen.
Wat zie ik over het hoofd? Iemand een idee?
Ter info: *soms* werkt die manier van werken wel. Bijvoorbeeld wanneer ik STP_Called als volgt schrijf:
Heb diezelfde script nu ook getest op SQL Server 2000 en ook daar doet deze eigenaardigheid zich voor. Het blijkt dus niet aan een of andere Sybase-quirk te liggen (hoewel ik wel besef dat Sybase & SQL Server in een ver verleden nauw verwant waren).
Alvast bedankt!
Als voorbeeld geef ik hier de 2 stored procedures:
code:
1
2
3
4
5
| CREATE PROCEDURE STP_Called AS BEGIN SELECT Value = CONVERT(int, 'tekst kan niet naar int geconverteerd worden') END |
code:
1
2
3
4
5
6
7
8
9
10
| CREATE PROCEDURE STP_Caller
AS
DECLARE @status int
BEGIN
EXECUTE @status = STP_Called
IF (@@error<>0) OR (@status<>0)
BEGIN
PRINT 'Error occured and captured'
END
END |
Als ik STP_Caller nu oproep, dan zou ik verwachten om de tekst "Error occured and captured" te zien verschijnen (tussen de foutboodschappen door), maar dat gebeurt dus niet. Eens de fout opgetreden is in STP_Called, stopt de hele uitvoering en krijgt de error-handling code in STP_Caller niet eens de kans zijn werk te doen.
Wat zie ik over het hoofd? Iemand een idee?
Ter info: *soms* werkt die manier van werken wel. Bijvoorbeeld wanneer ik STP_Called als volgt schrijf:
code:
1
2
3
4
5
| CREATE PROCEDURE STP_Called AS BEGIN RETURN 1 END |
Heb diezelfde script nu ook getest op SQL Server 2000 en ook daar doet deze eigenaardigheid zich voor. Het blijkt dus niet aan een of andere Sybase-quirk te liggen (hoewel ik wel besef dat Sybase & SQL Server in een ver verleden nauw verwant waren).
Alvast bedankt!
[ Voor 17% gewijzigd door apa op 10-10-2006 15:27 . Reden: Aanvullingen ]
PC: R5-2600X | X370-Pro | 2x8GB | 960Pro 512GB | WD 4TB | GTX 660 | Eizo CX240 | Steinberg UR22MkII | JBL LSR305