"for read only" gehöt zum Select kann also auch bei Execute angegeben werden.
Warum machst du keinen "Cursor for Statement" um dann ganz normal per Open/Fetch/Close zu arbeiten?
Beim Cursor kann man den dann auch als insensitive deklarieren.