Set Enginebehavior 90 is default, AFAIK. You must try every Select statement you have, and see which report any error, and change them to comply with the new, correct syntax.
The biggest change in VFP9 is that all in Select statements which have a GROUP BY, you must include ALL the fields in the group by list, except the fields which are results of aggregate functions like max(). You also can NOT use memo fields in these selects. I suggest that you read What's new in VFP9, especially Changes in functionality, and read it thoroughly.
Does this Select statement report any error message, and if so what error message?
>Where to put this "behavior", in start of each form. And, please look the following syntax, is there any changes for VFP9.
>
>
>SELECT dSiMain.*, dSisUb.icode, dSisUb.Quantity, dSisUb.Rate,;
> dPCode.pname, dIcode.full_desc, dIcode.maincat, dIcode.category,dIcode.subcat ;
> FROM dSiMain;
> RIGHT JOIN dSisUb ON dSiMain.SiNo == dSisUb.SiNo;
> LEFT JOIN dPCode ON dSiMain.pcode == dPCode.pcode;
> LEFT JOIN dIcode ON dSisUb.icode == dIcode.icode;
> WHERE BETWEEN(dSiMain.DATE, dt1, dt2) ;
> INTO CURSOR tempsale ORDER BY maincat
>
>