Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: OCIReset() always fails
Maybe try placing the OCIStmtFetch after OCIReset(svchp) but before
OCIHandleFree(stmthp)? See if it works.
"Knut Stolze" <stolze_at_informatik.uni-jena.de> wrote in message
news:bc9k34$dmc$1_at_fsuj29.rz.uni-jena.de...
> Dave Hau wrote on Friday 06 June 2003 21:47:
> > Knut Stolze wrote:
> >> Dave Hau wrote on Friday 06 June 2003 17:24:
> >>
> >>
> >>>Try patching your OCI library to 8.1.7.4.
> >>>
> >>>In the list of bugs fixed for 8.1.7.4, I see this bug:
> >>>
> >>> 8174 2265777 OCIBreak() -> OCIReset() does not close the cursor
(can
> >>>lead to ORA-1000)
> >>
> >>
> >> Thanks, I'll see if the patch can be applied and then try again.
> >>
> >>
> >>>1. OCIHandleAlloc(stmthp)
> >>>2. OCIStmtPrepare(stmthp)
> >>>3. OCIStmtExecute(stmthp)
> >>>4. OCIBreak(svchp)
> >>>5. OCIReset(svchp)
> >>>4. OCIHandleFree(stmthp)
> >>>5. OCITransCommit()
> >>>6. go back to 1.
> >>>
> >>>The cursor opened at 3 won't close until session is terminated.
> >>
> >>
> >> Is there, by any chance, an explicit way to close the cursor before or
> >> after
> >> the OCIBreak()? I hope I could use that as an interim work-around.
> >
> >
> > Try calling OCIStmtFetch() with the nrows parameter set to zero. This
> > should cancel the cursor:
>
> Well, that doesn't work either. I placed the call to OCIStmtFetch() after
the
> OCIBreak() and before OCIReset() in other woris, between 4 and 5. Is that
> the correct place?
>
>