This has been an interesting thread to follow. I use WHILE loops but also use the GOTO code.
But reading this thread gives me an idea of the difference and possible uses of each. Very informative indeed. James Belisle Making Information Systems People Friendly Since 1990 From: [email protected] [mailto:[email protected]] On Behalf Of Dennis McGrath Sent: Friday, March 21, 2014 7:59 AM To: RBASE-L Mailing List Subject: [RBASE-L] - Re: Thanks to someone for the code! Tony, Large while loops tend to be difficult to maintain as it is very easy to write something that will crash the loop. Also, I have had while loops that absolutely refused to trace making debugging impossible. Using the GOTO loop method results in code that may run a little slower, but is easier to maintain and not as fragile. I use while loops for small tasks that iterate a great many times, and are not likely to change over time. Otherwise, my time is better spent writing code that is less time intensive to debug and maintain. I’m sure there are those folks who will violently disagree with me, and that is OK too. Dennis McGrath Software Developer QMI Security Solutions 1661 Glenlake Ave Itasca IL 60143 630-980-8461 [email protected] From: [email protected] [mailto:[email protected]] On Behalf Of Tony IJntema Sent: Friday, March 21, 2014 6:40 AM To: RBASE-L Mailing List Subject: [RBASE-L] - Re: Thanks to someone for the code! Karen, Maybe not relevant, but why don’t you use the while-endwhile construction. If statements are handy, but also a little dangerous 10 if statements in a program will result in 1024 paths through your program Tony DROP CURSOR c1 DECLARE c1 CURSOR FOR SELECT ....... blah blah blah OPEN c1 FETCH c1 INTO ..... blah blah blah while SQLCODE <> 100 THEN -- do all your processing here FETCH c1 INTO ..... blah blah blah endwhile WRITE 'I AM DONE!' From: [email protected] [mailto:[email protected]] On Behalf Of Karen Tellef Sent: donderdag 20 maart 2014 23:18 To: RBASE-L Mailing List Subject: [RBASE-L] - Re: Thanks to someone for the code! Well then, I'm guessing it was either Dennis or Alastair! Or both! Karen -----Original Message----- From: Alastair Burr <[email protected]> To: RBASE-L Mailing List <[email protected]> Sent: Thu, Mar 20, 2014 2:21 pm Subject: [RBASE-L] - RE: Thanks to someone for the code! And I, for one, have been using it for many of those years. Cheers, Dennis, Regards, Alastair. From: Dennis McGrath <mailto:[email protected]> Sent: Thursday, March 20, 2014 7:01 PM To: RBASE-L Mailing List <mailto:[email protected]> Subject: [RBASE-L] - RE: Thanks to someone for the code! Perhaps someone else shared that with you but I’m been preaching that style for mucho many years. Dennis McGrath Software Developer QMI Security Solutions 1661 Glenlake Ave Itasca IL 60143 630-980-8461 [email protected] From: [email protected] [mailto:[email protected] <mailto:[email protected]?> ] On Behalf Of Karen Tellef Sent: Thursday, March 20, 2014 1:52 PM To: RBASE-L Mailing List Subject: [RBASE-L] - Thanks to someone for the code! Probably a year ago I asked for recommendations of how to use alternative code for a cursor that had to go through 50,000 rows of data, run hundreds of lines of code per record, and would periodically lock up. I got a couple examples, and I picked this one as being the easiest to follow, the simplest and best of all, IT WORKS! I forgot who gave it to me, but thank you! And perhaps this will help someone else. Karen DROP CURSOR c1 DECLARE c1 CURSOR FOR SELECT ....... blah blah blah OPEN c1 LABEL GetCursor FETCH c1 INTO ..... blah blah blah IF SQLCODE = 100 THEN GOTO EndCursor ENDIF -- do all your processing here GOTO GetCursor LABEL EndCursor WRITE 'I AM DONE!' RETURN

