This is caused by incorrect params being sent to SQL to open a cursor... check your code and see what type of recordset and what options are being used.
The common cause I have seen is a updatable recordset with SUM(),COUNT(*) etc... when it should be read only
Not a lot of documentation on this, and this is just an example of what I have seen at a customer site.
Hope this helps.
Patrick