Hi John,
It's somewhat documented in the readme.htm file on VFP7 installation CD:
Left Outer Join returns zero records on nulls. If a Left Outer Join uses Upper(), and the variable is null, zero records will be returned. This is a change from the incorrect behavior in Visual FoxPro 6.0, which returned a single record.
Because there were several instances where SQL SELECT statements could return incorrect result sets in previous versions of Visual FoxPro, several changes were made in Visual FoxPro 7.0. You should verify that your SQL SELECT statements return expected result sets. As you can see, the only way to find out is to test all your selects with Left Outer Join.
>What are the changes for null from 6 to 7
>
>I already found that in 6
>
>SELECT * from prebatch LEFT OUTER JOIN accounttransact ;
>ON prebatch.icashid = accounttransact.icashid ;
>WHERE accounttransact.wayne <> "bobo" ;
>GROUP BY accounttransact.cinvoice ;
>INTO CURSOR tbatchtmp
>
>
>returns all the records where wayne <> 'bobo' and where wayne is null
>
>in 7, it works correctly and returns only records where wayne <> 'bobo' (ex: wayne = 'PH')
>
>evidently, null <> 'bobo' = .T.
>
>Are there any other gotchas?
--sb--