Hello Tito, >> Would you expect a cursor to live after is database has been closed?
Sure. Imagine a Client - Server scenario: the client makes a request (e.g. SELECT * FROM Orders), request which is passed to a server. The server executes the sql and obtains a recordset. After that, it's of no use to keep the database open, so it closes it. And sends the results obtained back to the client. This is what's known in ADO as disconnected recordsets, and is the way I've been programming database applications for years. My COM wrapper thinks in the same way (it cashes the result of a SELECT statement). One improvement could be made here, but quite hard to implement: a client could receive a disconnected set of records, change it (e.g. add one row and delete another) and send it back to the server for processing. The server would then be capable of applying the modifications in the real database. Regards, George Ionescu