>>Some of the time it would be hard to tell if I didn't get a "filtered view" result set, because it would be a small data set. But other times, it would be painfully obvious, like on a table with 50K or more records, because of the huge dropoff in speed. You can tell for sure if you do a DBF('myselectcursor') and it ends in ".DBF", not ".TMP".
>
>Are you sure about this, Fred? I've never seen a cursor with a DBF extension, and have been relying on USE AGAIN to determine if it's filtered or not. Probably you could look at the cursor with MODI STRU, also, and the base table properties would show up (just a guess, I can't ever seem to get a filtered result set when I want to, only when I don't want one) < s > I'm not sure if RECCOUNT() works, either...
One method that works for me is to check the value of _TALLY against the RECCOUNT() of the cursor immediately after a SQL Select, if they are not the same, and there's a WHERE clause that should eliminate some set of records from the table it's a filtered view...more to the point, if the table name returned by DBF() matches the table name of the alias selected from, then the result is a filtered view:
USE MyTable ALIAS Foo
SELECT * FROM Foo INTO BAR
? DBF('Bar') == DBF('Foo')