[Zope] DCOracle question again
David A Lipsky
lippo@MIT.EDU
Wed, 05 Jul 2000 11:24:40 -0400
About a week ago, I asked a question about dcoracle
(Included below). I got one response suggesting that
I not use a cursor. However, I need a cursor to return
several (lots) of rows from the database in one stored
procedure call. I can't do this by adding extra non-cursor
parameters. If anyone has any other ideas, I'd appreciate
the help.
-David Lipsky
> I was wondering if you could help me with a problem I've been having
> with DCOrale, connecting to Oracle8i.
>
>
> import DCOracle
>
> conn = DCOracle.Connect(...)
>
> curs = conn.cursor()
> conn.procedures.some_stored_procedure(curs)
> curs.fetchall()
>
> curs = conn.cursor()
> conn.procedures.some_other_stored_procedure(curs)
> curs.fetchall()
>
>
> some_stored_procedure and some_other_stored_procedure
> return different rowtypes.
>
> Either the second call throws the following error, or
> it returns the wrong set of columns (it will return only
> those columns that were returned in the first call):
>
>
> Traceback (innermost last):
> File "<stdin>", line 1, in ?
> File "/usr/lib/python1.5/DCOracle/ociProc.py", line 134,
> in __call__
> for c in iocursors: c._describe()
> File "/usr/lib/python1.5/DCOracle/ociCurs.py", line 130,
> in _describe
> if rc!=1007: self._error()
> File "/usr/lib/python1.5/DCOracle/ociCurs.py", line 109, in _error
> raise error, (rc, oci_.OracleErrorMessage(self._c.lda, rc))
> oci.error: (1003, 'ORA-01003: no statement parsed')
>
>
> Explicitly closing the cursor between the calls doesn't seem to help,
> nor does reusing the same cursor. The only way I've been able to call
> two stored procedures in this way is by closing the connection itself
> between calls.
>
> Any advice or help you can give would be greatly appreciated! If I've
> sent this to the wrong address, please forward it to someone
> who can help.
> Thank you!
>
>
> -David Lipsky
> Openmind Commonsense
> MIT Media Lab
>