>Upon further investigation, I have discovered that the problem with SQL Select and arrays only occurs when using a function is the Select statement.
>
>Run the following code in VFP 9.0:
>
>SET ENGINEBEHAVIOR 90
>
>CREATE CURSOR test (ky i)
>SELECT MAX(ky) FROM test INTO ARRAY laTest
>
>debug
>SUSPEND
>
>Examine the contents of laTest in the Locals window. The result will be null. Now run this code:
>
>SET ENGINEBEHAVIOR 80
>
>CREATE CURSOR test (ky i)
>SELECT MAX(ky) FROM test INTO ARRAY laTest
>
>debug
>SUSPEND
>
>The array is not created.
>
>Now run the following:
>
>SET ENGINEBEHAVIOR 90
>
>CREATE CURSOR test (ky i)
>SELECT ky FROM test INTO ARRAY laTest
>
>debug
>SUSPEND
>
>The array is not created.
James,
It has nothing to do with arrays. The engine behavior has been changed in 9.0. You can find that in what's new section I think. Before VFP9 when no matching records exist max() was returning 0 records. In VFP9 however a single record is created with a .null. value.
It is not a bug but a correction of bug (or an effort to come closer to ANSI SQL).
Cetin