It's the code that follows the while loop I am trying to avoid if I
break out of the while loop before it terminates normally.
I know I can break out and then use an if statement to check how the
while loop was terminated but I was hoping there was a different way.
On Aug 5, 2005, at 5:06 PM, Albert Berry wrote:
James, the only safe way to exit a loop is using BREAK. A RETURN
inside a WHILE loop is an
accident waiting to happen. Without seeing all your code, It is
possible that you could use the
following WHILE statement:
WHILE SQLCODE <> 100 AND vEscape <> 'T' THEN
You could also use an IF;ELSE;ENDIF inside the loop to skip over
the code you don't want to run.
--- James Hageman <[EMAIL PROTECTED]> wrote:
But that would just put me outside the while loop and I don't want
any
more code to run if I BREAK out of the while loop.
I could do this, put the same IF/ENDIF inside and outside of the
while
loop but it seems silly.
WHILE ...
IF vescape = 'T' THEN
BREAK
ENDIF
ENDWHILE
IF vescape = 'T' THEN
return
ENDIF
other code ....
Albert Berry wrote:
I believe you would be safer if you replaced part of the code
with 'BREAK'
DECLARE c1 SCROLL CURSOR FOR SELECT ...
OPEN c1
WHILE SQLCODE <> 100 THEN
FETCH c1 INTO ...
-- This has already been covered in the WHILE ...
-- IF SQLCODE = 100 THEN
-- BREAK
-- ENDIF
INSERT INTO ...
EDIT USING ...
-- At this point, a BREAK would be cleaner
IF vescape = 'T' THEN
BREAK
ENDIF
ENDWHILE
CLEAR ALL V
DROP CURSOR c1
RETURN <-- THIS OK?
--- James Hageman <[EMAIL PROTECTED]> wrote:
The following code runs with no errors but I am wondering if
it's Kosher.
Specificaly if vescape = 't' and I return to the form that calls
the eep
in the middle of the while loop is that going to cause problems
for me
later?
----------------------------------------------------------------
--other code blah blah
--
DECLARE c1 SCROLL CURSOR FOR SELECT ...
OPEN c1
WHILE SQLCODE <> 100 THEN
FETCH c1 INTO ...
IF SQLCODE = 100 THEN
BREAK
ENDIF
INSERT INTO ...
EDIT USING ...
IF vescape = 'T' THEN
CLEAR ALL V
DROP CURSOR c1
RETURN <-- THIS OK?
ENDIF
ENDWHILE
DROP CURSOR c1
--other code follows that I don't want run if VAR vescape = 'T'
...
...
...
return
--eof---------------------------------------------------------
Albert Berry
Management Consultant
RR2 - 1252 Ponderosa Drive
Sparwood BC, V0B 2G2
Canada
(250) 425-5806
(250) 425-7259
(708) 575-3952 (fax)
[EMAIL PROTECTED]
Albert Berry
Management Consultant
RR2 - 1252 Ponderosa Drive
Sparwood BC, V0B 2G2
Canada
(250) 425-5806
(250) 425-7259
(708) 575-3952 (fax)
[EMAIL PROTECTED]