Then I don't know an easy way. Each and every piece in filter expression would need to be parsed and translated accordingly. Maybe using a udf() might be a shorter solution.
OTOH if all this is to get a cursor you could mimic it w/o an SQL :
select myTable
afield(aStruc)
create cursor crsSQL from array arrStruc
append from myTable for &lcFilter
Cetin
>Hi Cetin,
>
>this depends on the point of view. SET FILTER works perfectly - in his rules, because it depends on FoxPro's nativ operator "==".
>
>SELECT SQL defines his own operator "==".
>
>There is no problem that something is 'wrong'. It is clearly documented as it is.
>
>My problem is how to
translate the statement from FILTER() or the statement I put into a SET FILTER in a way that a SELECT SQL produces the same result as the filtered part of the cursor shows.
>
>(Or what will do same: How to translate the statement out of SELECT SQL's WHERE clause in a way that SET FILTER TO displays the same result as SELECT SQL?)
>
>
>Agnes
>
>>Agnes,
>>Yes == in SQL is different and shortcut for Set Ansi On. However why should that be a problem :
>>set filter to myField == myVal
>>
>>If myVal is not the same size as the field itself filtering would be selecting no records, something like 'set filter to .f.'
>>
>>IOW it's the filter causing problem there not the SQL.
>>Cetin