It as been some years (they go fast right?) since I cleared variables mid 
procedure.  I just set them to Null and clear up whatever is appropriate at 
the terminice.


On Saturday, May 8, 2021 at 11:31:38 AM UTC-4 Karen Tellef wrote:

> The problem isn't so much clearing as it is where you initialize it.  You 
> can't initialize it within the stored procedure if it is called from within 
> a while loop.  That takes away one of the advantages of using a stored 
> procedure, because you would still have to initialize the variables from 
> the calling code, before you run the stored procedure
>
>
> Karen
>
>
>
> -----Original Message-----
> From: Randyp <[email protected]>
> To: [email protected]
> Sent: Sat, May 8, 2021 10:14 am
> Subject: Re: [RBASE-L] - Re: SET VAR in WHILE loop
>
> You might set the variable to zero or null rather than clearing it. 
>
> Sent from my iPhone
>
> On May 8, 2021, at 9:00 AM, [email protected] <[email protected]> wrote:
>
> 
>
> Yeah I'm not sure how the mechanism within R:Base works to track 
> variables, but what ever list is used, the named variables have to point to 
> some place in system memory (space requested for the Variable Type), so it 
> figures that if you clear a variable completely, whatever link from within 
> R:Base to system memory (Heap or Stack) is broken and there isn't a good or 
> established mechanism within R:Base to restore that within a While Loop (at 
> least I think that was the logic when R:Base was originally written), so 
> there exists this rule to NOT do it.  Just a Guess! 
>
>
> On Saturday, May 8, 2021 at 4:39:08 AM UTC-4 Doug Hamilton wrote:
>
> Thanks Mike.  The CLEAR VAR in the RUN SELECT code was typical "good 
> housekeeping" we see on a lot of sample code.
>
> But, as I now understand, code that is in the RUN SELECT is treated as if 
> that code were explicitly written within the WHILE loop.
>
> Which means, like you said, any variables in a RUN SELECT called within a 
> WHILE loop should be defined outside the WHILE loop so they get, and keep, 
> their place in line.
>
> Doug
>
>
>
> On 5/4/2021 11:10 AM, [email protected] wrote:
>
> Doug, 
>   When you Clear a Var, you have removed it from it's location in memory, 
> so when you recreate it by issuing a SET VAR in the while loop, you are 
> violating the rules.
>   You can simply SET VAR SomeVar = NULL without loosing your place in line.
>
> Mike
>
> On Tuesday, May 4, 2021 at 11:31:40 AM UTC-4 Doug Hamilton wrote:
>
> I know VARIABLES should not be defined inside a WHILE loop. 
> Does that apply to variables that are defined in a RUN SELECT that is 
> run inside a WHILE loop? 
>
> Specifically, I have a RUN SEL clump of code that generates sequential 
> alpha-numeric numbers. 
> In it, I clear 9 variables, SET VAR those 9 (all are TEXT), run about 
> 100 lines of code, and then clear 8 of the variables. 
> It runs in a WHILE loop of anywhere from 1 to 30 iterations. 
>
> This is the code in the RUN SELECT, command name 'GenTaskBarCode': 
> CLEAR VAR  + 
> vTaskBarcode, + 
>  vDigit1, + 
>  vDigit2, + 
>  vDigit3, + 
>  vDigit4, + 
>  vDigit5, + 
>  vMaxDigit, + 
>  vMinDigit, + 
>  vNextDigit 
>
> SET VAR  + 
>   vTaskBarcodeTEXT, + 
>   vDigit1 TEXT, + 
>   vDigit2 TEXT, + 
>   vDigit3 TEXT, + 
>   vDigit4 TEXT, + 
>   vDigit5 TEXT, + 
>   vMaxDigit TEXT, + 
>   vMinDigit TEXT, + 
>   vNextDigit TEXT 
>
> Runs about 100 lines of code 
>
> CLEAR VAR  + 
> [8 variables, not vTaskBarcode] 
> RETURN 
>
> The WHILE loop is: 
>
> WHILE SQLCODE <> 100 THEN 
>   RUN SELECT CmdCode FROM InternalCode WHERE CmdName='GenTaskBarCode' 
>
>   UPDATE tSHPT SET tTaskBarcode  =('1467'+.vTaskBarcode) + 
>     WHERE PIKD_ID = .vPIKD_ID 
>   FETCH c#1 INTO vPIKD_ID vi1 
> ENDWHILE 
>
> TIA, 
> Doug 
>
> -- 
> This email has been checked for viruses by Avast antivirus software. 
> https://www.avast.com/antivirus 
>
> -- 
> For group guidelines, visit 
> http://www.rbase.com/support/usersgroup_guidelines.php
> --- 
> You received this message because you are subscribed to the Google Groups 
> "RBASE-L" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/rbase-l/343713fe-e9a4-4002-b4f4-eacf9c0b5f4bn%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/rbase-l/343713fe-e9a4-4002-b4f4-eacf9c0b5f4bn%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
>
>
>
> ------------------------------
> [image: Avast logo] <https://www.avast.com/antivirus> 
> This email has been checked for viruses by Avast antivirus software. 
> www.avast.com <https://www.avast.com/antivirus> 
>
>
> <https://mail.aol.com/webmail-std/en-us/suite#m_1014332687232617598_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
>
> -- 
> For group guidelines, visit 
> http://www.rbase.com/support/usersgroup_guidelines.php
> --- 
> You received this message because you are subscribed to the Google Groups 
> "RBASE-L" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/rbase-l/017f6707-b720-4b1f-b45e-6a43c2024826n%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/rbase-l/017f6707-b720-4b1f-b45e-6a43c2024826n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> -- 
> For group guidelines, visit 
> http://www.rbase.com/support/usersgroup_guidelines.php
> --- 
> You received this message because you are subscribed to the Google Groups 
> "RBASE-L" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/rbase-l/F181004B-9665-4586-ABA8-B6BBF53ADDB9%40ctags.com
>  
> <https://groups.google.com/d/msgid/rbase-l/F181004B-9665-4586-ABA8-B6BBF53ADDB9%40ctags.com?utm_medium=email&utm_source=footer>
> .
>

-- 
For group guidelines, visit 
http://www.rbase.com/support/usersgroup_guidelines.php
--- 
You received this message because you are subscribed to the Google Groups 
"RBASE-L" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rbase-l/c8565fa0-bdd7-4c5a-8a7e-55c0c23a43ddn%40googlegroups.com.

Reply via email to