private void OnInfoMessage(OracleInfoMessageEventArgs infoMessageEvent) { OracleInfoMessageEventHandler handler = (OracleInfoMessageEventHandler)Events[EventInfoMessage]; if (null != handler) { handler(this, infoMessageEvent); } }
internal void OnInfoMessage(OracleInfoMessageEventArgs infoMessageEvent) { OracleInfoMessageEventHandler handler = (OracleInfoMessageEventHandler)base.Events[EventInfoMessage]; if (handler != null) { handler(this, infoMessageEvent); } }
//======================================================================================== // Execute() // This is the thread worker routine. //======================================================================================== private void Execute(object chassisObj) { Chassis chassis = (Chassis)chassisObj; if (UserOptions.RunStatistics) { chassis.queries.Statistics = new Statistics(dbase); chassis.queries.Statistics.Initialize(); } var infoHandler = new OracleInfoMessageEventHandler(CaptureInfoMessage); var stateHandler = new StateChangeEventHandler(CaptureStateChange); OracleConnection con = dbase.OraConnection; con.InfoMessage += infoHandler; con.StateChange += stateHandler; try { QueryCollection.Enumerator qe; while ((chassis.repeat-- > 0) && !isCancelled) { qe = chassis.queries.GetEnumerator(); while (qe.MoveNext() && !isCancelled) { ExecuteQuery(query = qe.Current); if (query.AffectedRecords > 0) { chassis.queries.TotalRecords += query.AffectedRecords; } chassis.queries.TotalTicks += query.Ticks; } } if (UserOptions.RunStatistics) { chassis.queries.Statistics.Summarize(); } } finally { this.isExecuting = false; if (QueriesCompleted != null) { QueriesCompleted(new QueriesCompletedEventArgs(chassis.queries)); } con.InfoMessage -= infoHandler; con.StateChange -= stateHandler; } }
//======================================================================================== // ExecuteProcedure() // Called directly from the schema browser when opening a procedure; in which // case the parameters list is generated from RunProcedureDialog. // Also called from InvokeProcedure which grabs a SQL statement from the // query window containing an EXEC command. //======================================================================================== private void ExecuteProcedure(Query query) { var cmd = new OracleCommand(); cmd.Connection = dbase.OraConnection; cmd.CommandText = query.SQL; cmd.CommandType = CommandType.StoredProcedure; cmd.CommandTimeout = timeout; OracleParameter parameter; foreach (Parameter p in query.Parameters) { parameter = new OracleParameter(); parameter.ParameterName = p.Name; parameter.OracleDbType = p.DataType; parameter.Direction = p.Direction; if (p.Value == System.DBNull.Value) { parameter.Value = "null"; } else { parameter.Value = p.Value; } if ((p.Direction & (ParameterDirection.Output | ParameterDirection.ReturnValue)) > 0) { if ((parameter.OracleDbType == OracleDbType.Char) || (parameter.OracleDbType == OracleDbType.NChar) || (parameter.OracleDbType == OracleDbType.Varchar2) || (parameter.OracleDbType == OracleDbType.NVarchar2)) { // reserve enough space for most data! parameter.Size = 1000; } query.HasOutputs = true; } cmd.Parameters.Add(parameter); } var infoHandler = new OracleInfoMessageEventHandler(CaptureInfoMessage); var stateHandler = new StateChangeEventHandler(CaptureStateChange); dbase.OraConnection.InfoMessage += infoHandler; dbase.OraConnection.StateChange += stateHandler; try { ExecuteCommand(query, cmd); if (query.HasOutputs) { for (int i = 0; i < cmd.Parameters.Count; i++) { parameter = cmd.Parameters[i]; if ((parameter.Direction & (ParameterDirection.Output | ParameterDirection.ReturnValue)) > 0) { query.Parameters[i].Value = parameter.Value; } } } } catch (OracleException exc) { query.AddMessage(exc); if (exc.Message == String.Empty) { Logger.WriteLine(exc.StackTrace); } else { Logger.WriteLine(exc.Message); } } catch (Exception exc) { query.AddMessage(exc); if (exc.Message == String.Empty) { Logger.WriteLine(exc.StackTrace); } else { Logger.WriteLine(exc.Message); } } finally { dbase.OraConnection.InfoMessage -= infoHandler; dbase.OraConnection.StateChange -= stateHandler; } }