[Mono-dev] Bug 486705 Update / Fix?
SpamMonkey01+Mono at gmail.com
Thu Mar 19 12:47:43 EDT 2009
I might have found the source of
https://bugzilla.novell.com/show_bug.cgi?id=486705 Bug 486705 . For
whatever reason, I am unable to create a
https://secure-www.novell.com/selfreg/jsp/createAccount.jsp Novell account
so if someone could post this info to that Bug on my behalf, it would be
NextResult() of OracleDataReader.cs (Line 848) has a //FIXME: get next
result comment in it that simply returns false - this should be changed to
throw a NotImplementedException. Bug 486705 is simply that Mono does not
currently support multiple result sets (ref cursors) but the lack of
exceptions does not tell the user this. I think there are quite a few of
these comments in the source, most if not all of them should be changed to
We should also http://www.mono-project.com/Oracle document this , but I
don't seem to have the ability to change that wiki page.
I wrote this a while back before I had the latest source code, but I thought
I should just post it anyway for others to find when searching.
ExecuteReader(...) of System.Data.OracleClient.OracleCommand.cs (Line 580)
does a for-loop over p (0 thru Parameters.Count), yet the loop itself does
not use the loop-invariant (p) - instead it always uses '0' (i.e.
Parameters on Line 581). The code in OracleCommand.cs, method
GetNextResults() (Line 661) has the proper loop so my understanding is when
Mono first gets the OracleDataReader/RefCursor, it should only get the first
cursor. Later, command.NextResult() will be called by the user which will
call GetNextResults() and properly get the next cursor.
This would explain to my why ExecuteReader(...) never worked for me, as my
OUT cursors were never the first parameter in the Stored Procedure. I've
had to save a reference to the OracleParameter when I declare it and then
use param.Value after a call to ExecuteNonQuery(...) (which does work fine
for multiple cursor out parameters). I think this is a new bug, as I wasn't
able to find anything about it when searching (other than the possibly
related Bug 486705).
This might explain Bug 486705 to me - Shao Jiaxing was able to get his first
cursor out but couldn't get any data from any other cursors if the first
parameter wasn't a cursor.
In the least, I would like to add some comments/documentation to explain
what is happening here - does anyone know why I can't create a Novell
account? It seems to time out.
View this message in context: http://www.nabble.com/Bug-486705-Update---Fix--tp22604148p22604148.html
Sent from the Mono - Dev mailing list archive at Nabble.com.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Mono-devel-list