Main Page | Report this Page
Computers Forum Index  »  Computer - Databases - Btrieve  »  cursor error endless loop...
Page 1 of 1    

cursor error endless loop...

Author Message
tulio salinas...
Posted: Fri Mar 06, 2009 4:17 pm
Guest
I'm using Pervasive Database v8.7 and I have the following stored
procedure that It doesn't work and goes into a endless loop.

Is it that this database doesn't support nested cursors?

thank you.

CREATE PROCEDURE populate_test() AS
BEGIN

DECLARE :v_parent CHAR(20);
DECLARE :v_part1 CHAR(20);

declare x cursor for
select distinct parent from BOM_MSTR;

open x;

delete from BOM_TEST3;

INSLOOP:
LOOP

IF SQLSTATE = '02000' THEN
LEAVE INSLOOP;
END IF;

FETCH NEXT FROM x INTO
:v_parent;

declare y cursor for
select distinct part from BOM_MSTR
where parent=:v_parent;

open y;
INSLOOP2:
LOOP
IF SQLSTATE = '02000' THEN
LEAVE INSLOOP2;
END IF;


FETCH NEXT FROM y INTO
:v_part1;

START TRANSACTION;

INSERT INTO BOM_TEST3 (Parent,Part,lvl)
values (:v_parent,:v_part1,1);
COMMIT WORK;

END LOOP;
CLOSE y;

END LOOP;
CLOSE x;
END
 
BtrieveBill...
Posted: Sun Mar 08, 2009 2:11 am
Guest
Posted a reply on the Pervasive forum.
Goldstar Software Inc.
Pervasive-based Products, Training & Services
Bill Bach
BillBach at (no spam) goldstarsoftware.com
http://www.goldstarsoftware.com
*** Pervasive Training - March 2009 in Chicago ***


tulio salinas wrote:
Quote:
I'm using Pervasive Database v8.7 and I have the following stored
procedure that It doesn't work and goes into a endless loop.

Is it that this database doesn't support nested cursors?

thank you.

CREATE PROCEDURE populate_test() AS
BEGIN

DECLARE :v_parent CHAR(20);
DECLARE :v_part1 CHAR(20);

declare x cursor for
select distinct parent from BOM_MSTR;

open x;

delete from BOM_TEST3;

INSLOOP:
LOOP

IF SQLSTATE = '02000' THEN
LEAVE INSLOOP;
END IF;

FETCH NEXT FROM x INTO
:v_parent;

declare y cursor for
select distinct part from BOM_MSTR
where parent=:v_parent;

open y;
INSLOOP2:
LOOP
IF SQLSTATE = '02000' THEN
LEAVE INSLOOP2;
END IF;


FETCH NEXT FROM y INTO
:v_part1;

START TRANSACTION;

INSERT INTO BOM_TEST3 (Parent,Part,lvl)
values (:v_parent,:v_part1,1);
COMMIT WORK;

END LOOP;
CLOSE y;

END LOOP;
CLOSE x;
END
 
 
Page 1 of 1    
All times are GMT
The time now is Sun Nov 29, 2009 6:55 pm