Maliyet hesaplaması konusunda prosedur yazmaya çalışıyorum. İç içe çalışan iki Cursor var. İçerdeki Cursor'u, dışardaki Cursor'un döngü sayısınca açıp kapatmadan kaldığı yerden devam ettirmek istedim ancak aşağıdaki hata iletisi döndü. İçerdeki Cursor' u kaldığı yerden devam ettirmenin yolu yok mu?
Hata:
Prosedur özet gövdesi:
BEGIN
*OPEN CURCIKIS; * *
*OPEN CURGIRIS; *
* *
*CIKISLOOP:
*WHILE (1=1) DO * *
*BEGIN
* *FETCH CURCIKIS INTO CID, CSTKID, CTARIH, CMIKTAR, CFIYAT, CTUTAR;
* *IF (ROW_COUNT = 0) THEN LEAVE CIKISLOOP;
* *
* *GIRISLOOP:
* *WHILE (1=1) DO
* *BEGIN
* * INSERT INTO TBL_FIFODETAY VALUES
CID, :GTUTAR);
* * * *
* * FETCH CURGIRIS INTO GSTKID, GTARIH, GMIKTAR, GFIYAT, GTUTAR; -- Bu satırda takılıyor * * *
* * IF (ROW_COUNT = 0) THEN LEAVE GIRISLOOP;
* * * *
* * * */* Diğer işler... */
* * * *IF (koşulum) THEN LEAVE GIRISLOOP;
* *END * *
* *
*END
*
*CLOSE CURGIRIS;
*CLOSE CURCIKIS;
*
END
Hata:
Alıntı:Attempt to fetch past the last record in a record stream.
At procedure 'SP_Maliyet' line: 46, col: 6.
SQL Code: -596
IB Error Number: 335544374
At procedure 'SP_Maliyet' line: 46, col: 6.
SQL Code: -596
IB Error Number: 335544374
Prosedur özet gövdesi:
BEGIN
*OPEN CURCIKIS; * *
*OPEN CURGIRIS; *
* *
*CIKISLOOP:
*WHILE (1=1) DO * *
*BEGIN
* *FETCH CURCIKIS INTO CID, CSTKID, CTARIH, CMIKTAR, CFIYAT, CTUTAR;
* *IF (ROW_COUNT = 0) THEN LEAVE CIKISLOOP;
* *
* *GIRISLOOP:
* *WHILE (1=1) DO
* *BEGIN
* * INSERT INTO TBL_FIFODETAY VALUES
* * * *
* * FETCH CURGIRIS INTO GSTKID, GTARIH, GMIKTAR, GFIYAT, GTUTAR; -- Bu satırda takılıyor * * *
* * IF (ROW_COUNT = 0) THEN LEAVE GIRISLOOP;
* * * *
* * * */* Diğer işler... */
* * * *IF (koşulum) THEN LEAVE GIRISLOOP;
* *END * *
* *
*END
*
*CLOSE CURGIRIS;
*CLOSE CURCIKIS;
*
END