Well, curso is a very diffuse term in foxpro. In it's main meanings it's a temp dbf as a result of a query, result of a view usage giving a view cursor or result of a cursoradapter cursorfill(). If you use a table that's what's not called a cursor. Still all these ways of accessing data end up in a workarea, which has an alias.
What adds to that is, the visual objects you see in a data environemnt are called cursor, too. This is misleading. These cursors are not representing the data itself, they are actually objects doing the data access. You can create such a cursor object outside of DE on the commandline, eg via o = CreateObject("cursor") and this does not add a new alias into the datasession. It's quite useless outside of a DE. And for example I wouldn't know if and how you could make a DE use a subclassed cursor object instead of the native one, if you add a table or view to a DE. Doesn't matter much, as I tossed away with using the DE anyway, as I only work in classes. But's that getting off topic.
This boils down to the term cursor being used for different things in foxpro and you could argue that everything is a cursor in the end, also an opened table. Like Mike I do differentiate between several types of aliases, though. What's true is, you never work on the files directly, you only work with the workareas. So what's true is, that you work on aliases, and aliases can stand for the different data access types vfp offers. This is rather comparing to very comfortable file handles. Aliases hide the details of the file access done by foxpro, which is needed towards dbfs or views or even remote data.
Bye, Olaf.