When working with a large query executed though an ODBC connection what is the best way to allow the paging of the results at the client side. I have tried some methods using %VID and similar methods, but these really don't seem to work as the value returned is related to the ID of the data and not the position in the results set. What would be ideal is if the value seen in the management portal when you check of "Row Number" was available to external queries through ODBC. I have not seen a way to return this however. This would be similar to SQL server Last n and Skip n capabilities.
I'm not sure I understand the objection to %VID. I've seen a few different recommendations on how best to use it, but I think it does what you want in the following example:
select * from ( select top all * from Sample.Person order by DOB ) where %vid between 10 and 19
Regardless of the where or order by clause that you put in the sub-query, %VID refers to the position in the result set.