When you call the SqlCursorOpen function with a scrollopt& parameter of CURDYNAMIC, 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 CURINSENSITIVE and a concuropt& parameter of CURREADONLY 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 CURINSENSITIVE and a concuropt& parameter of CURREADONLY 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 SqlCursor.