The first thing you need to do is to make sure FoxPro creates the cursor as a disk file rather than just a filter on your existing table. You can do this by adding a dummy field like this:
SELECT *, ' ' AS Dummy ;
FROM mytable ;
WHERE mycondition ;
INTO CURSOR mycursor
You don't need to do this when your SELECT involves a join, because a join also forces FoxPro to create a disk file. To make mycursor writeable do this:
USE DBF('mycursor') AGAIN IN 0 ALIAS mycursor2
mycursor2 is now writeable.
In VFP 5.0 you can put the NOFILTER keyword after the name of your cursor to tell VFP that you want it to create a file.