+ bool foundCursor = false;
+ for (int p = 0; p < Parameters.Count; p++) {
+ OracleParameter parm = Parameters [p];
+ if (parm.OracleType.Equals (OracleType.Cursor)) {
+ if (!foundCursor && parm.Direction != ParameterDirection.Input) {
+ // if there are multiple REF CURSORs,
+ // you only can get the first cursor for now
+ // because user of OracleDataReader
+ // will do a NextResult to get the next
+ // REF CURSOR (if it exists)
+ foundCursor = true;
+ parm.Update (this);
+ if (p + 1 == Parameters.Count)
+ moreResults = -1;
+ else
+ moreResults = p;
+ }
+ } else
+ parm.Update (this);
+ }