When you call the dbcursoropen function with a scrollopt parameter of CUR_DYNAMIC, the tables you specify in the SELECT statement of the stmt parameter no longer require unique indexes.
In SQL Server version 6.0, the cursor automatically opens with a scrollopt parameter of CUR_INSENSITIVE and a concuropt parameter of CUR_READONLY if the SELECT statement contains a table without a unique index.
In SQL Server 6.5, the cursor automatically opens with a scrollopt parameter of CUR_INSENSITIVE and a concuropt parameter of CUR_READONLY if the SELECT statement contains any of the following:
SQL Server will copy the results into temporary work tables. Because all fetch operations are performed on the temporary tables, you cannot make changes to the cursor by using dbcursor.