https://bugzilla.novell.com/show_bug.cgi?id=323528
User [EMAIL PROTECTED] added comment https://bugzilla.novell.com/show_bug.cgi?id=323528#c1 WebServices Group <[EMAIL PROTECTED]> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |[EMAIL PROTECTED] Severity|Enhancement |Critical --- Comment #1 from WebServices Group <[EMAIL PROTECTED]> 2008-09-09 13:23:27 MDT --- Update - still fails in 2.0, throws exception When an OracleDataAdapter is employed to fill the contents of a DataTable from the return value of an OUT cursor, the Fill() method crashes in a subsidiary reference to the database connection (See first inline code example). We work around this by not using the OracleDataAdapter, and instead directly loading the DataTable from the OracleDataReader created from the OUT cursor parameter. ----------------------------------------------------------- With the following pl/sql stored procedure: ----------------------------------------------------------- ---------------------------------------------------------------------- -- ListAuditSamples -- Returns a list of the exact timestamps of all the audit samples -- archived for the speciied station between the specified dates ---------------------------------------------------------------------- PROCEDURE ListAuditSamples ( stationID IN AUDIO_SAMPLE.BRDCST_STN_HIST_ID%type, dateRangeStart IN AUDIO_SAMPLE.AUDIO_SAMPLE_TS%type, dateRangeEnd IN AUDIO_SAMPLE.AUDIO_SAMPLE_TS%type, resultCursor OUT SYS_REFCURSOR ) AS BEGIN OPEN resultCursor FOR SELECT AUDIO_SAMPLE_TS, AUDIO_SAMPLE_ID FROM AUDIO_SAMPLE WHERE AUDIO_SAMPLE.BRDCST_STN_HIST_ID = stationID AND AUDIO_SAMPLE.AUDIO_SAMPLE_TS >= dateRangeStart AND AUDIO_SAMPLE.AUDIO_SAMPLE_TS <= dateRangeEnd ORDER BY AUDIO_SAMPLE.AUDIO_SAMPLE_TS; END; -- PROCEDURE ListAuditSamples ----------------------------------------------------------- using the following code: ----------------------------------------------------------- System.Data.OracleClient.OracleCommand cmd = new OracleCommand(PKG_NAME + ".ListAuditSamples", this.connection); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add( CreateNumberParam("stationID", stationID) ); cmd.Parameters.Add( CreateDateParam("dateRangeStart", dateRangeStart) ); cmd.Parameters.Add( CreateDateParam("dateRangeEnd", dateRangeEnd) ); cmd.Parameters.Add( CreateCursorParam("resultCursor") ); System.Data.OracleClient.OracleDataAdapter oda = new OracleDataAdapter(cmd); System.Data.DataSet dataSet = new DataSet(); oda.Fill(dataSet); ----------------------------------------------------------- yields the following error: ----------------------------------------------------------- System.ArgumentNullException: null key Parameter name: key at System.Collections.Hashtable.get_Item (System.Object key) [0x00000] at System.Data.OracleClient.OracleConnectionPoolManager.GetConnectionPool (OracleConnectionInfo info, Int32 minPoolSize, Int32 maxPoolSize) [0x00000] at System.Data.OracleClient.OracleConnection.Open () [0x00000] at System.Data.Common.DbDataAdapter.Fill (System.Data.DataSet dataSet, Int32 startRecord, Int32 maxRecords, System.String srcTable, IDbCommand command, CommandBehavior behavior) [0x00000] at System.Data.Common.DbDataAdapter.Fill (System.Data.DataSet dataSet) [0x00000] at Landmark.Services.MetaData.MetaDataDAL.ListAuditSamples (Decimal stationID, DateTime dateRangeStart, DateTime dateRangeEnd) [0x00000] at Landmark.Services.MetaData.MetaDataWrangler.ListAuditSamples (Decimal stationID, DateTime dateRangeStart, DateTime dateRangeEnd) [0x00000] at Landmark.WebServices.MetaData.MetaDataService.ListAuditSamplesByDateRange (Decimal stationID, DateTime dateRangeStart, DateTime dateRangeEnd) [0x00000] -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
