liRecords = 200 liStatus = 0 lcCursor = SYS( 2015 ) lcSqlSelect = [select * from mytable] CURSORSETPROP( [FetchAsNeeded] , .T. , 0 ) IF liRecords > 0 CURSORSETPROP( [FetchSize] , 200 , 0 ) ENDIF DO WHILE ! USED( lcCursor ) AND liStatus >= 0 liStatus = SQLEXEC( giConnectIDAsync, lcSqlSelect , lcCursor ) ENDDO CURSORSETPROP( [FetchAsNeeded] , .F. , 0 )In your code, you used SQLEXEC(). Does this mean CursorFill() does not work hand in hand with the Fetch* properties?