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.
>> 
>> 
>> 
>>      
>> This email has been checked for viruses by Avast antivirus software. 
>> 
>> www.avast.com
>> 
>> 
> 
> -- 
> 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.

-- 
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.

Reply via email to