>Take a look at the following program:
>
>PROCEDURE TEST
> LOCAL cTest
>
> set udfparms to value
>
> cTest = 'Before executing TEST2'
> ? cTest
> do TEST2 with cTest
> ? cTest
>
> return
>ENDPROC
>
>PROCEDURE TEST2
> LPARAMETER cTest2
>
> cTest2 = cTest2 + ", and now I'm executing TEST2"
> ? cTest2
>
> return
>ENDPROC
>
>
>Gives the following result when I run TEST from command window:
>Before executing TEST2
>Before executing TEST2, and now I'm executing TEST2
>Before executing TEST2, and now I'm executing TEST2
>
>Why is my local variable in procedure TEST changed? Shuldn't the value be the same when I return from TEST2? Both procedures is in the same prg file and I'm running VFP6 with SP3.
>
>/Mårten Törnquist
From what you see from your program, it seems that SET UDFPARMS only applies to UDFs. Your parameter is passed by value, hence the changes. If you force pass by value, it seems ok.
e.g.
do TEST2 with (cTest)
Interesting behaviour.