Hi Sture
It doesn't work. It just the way ODBC works. When you construct your SELECT statement you have to make sure all of your text felds are at the end egNo, I didn't know. What happens if you don't?
Otherwise you will get errors when you try to use SQLColumnValue/SQLGetDataCode:select col1,col2,col3,memo1,memo2 where x=y
All I can say is do your own indepedant test and compare it with SSMS etc ....I find it hard to accept that the record fetching should be slow.
I would also compare it with a 'traditional' VDF style find GT loop and play with the block size
I dont think BLOCK_SIZE is appropriate for ESQL in the sense that you call SQLExecute, the SQL server does it's stuff and returns a result set ready for you to fetch. You are then in control via SQLFetch on how much or little of that data you 'collect'Have you found no way of controlling the cache size when fetching from the result set of a ESQL call?
I think BLOCK_SIZE is used so that when executing traditional VDF find loops the CK contstructs an SQL Query to find the data you are looking for and it uses BLOCK_SIZE to limit how much of that data is collected in the first instance and then if you are looking for the next,next,next record it looks in that cache before getting the next block of 10 etc
This makes the whole CK process more efficent as it is ultimately having to execute less individual queries to get at the data you want. In the case of ESQL you (the programmer) are in charge of this process
As a side note if you have not already seen them you might find these threads interesting
http://support.dataaccess.com/Forums...light=slow+daw
http://support.dataaccess.com/Forums...ght=sqlgetdata