private void ErrorMessage(OracleException Ex) { switch (Ex.Number) { case 1: MessageBox.Show("Le numéro de livre doit etre unique", "Erreur 1", MessageBoxButtons.OK, MessageBoxIcon.Error); break; case 2292: MessageBox.Show("Le livre à déjà été louer", "Erreur 2292", MessageBoxButtons.OK, MessageBoxIcon.Error); break; case 1410: MessageBox.Show("Vous ne pouvez pas rien mettre dans le titre", "Erreur 1410", MessageBoxButtons.OK, MessageBoxIcon.Error); break; case 1407: MessageBox.Show("Vous ne pouvez pas rien mettre dans le titre", "Erreur 1407", MessageBoxButtons.OK, MessageBoxIcon.Error); break; case 1400: MessageBox.Show("Vous ne pouvez pas rien mettre dans le titre", "Erreur 1400", MessageBoxButtons.OK, MessageBoxIcon.Error); break; default: MessageBox.Show("Une erreur non-gerer est survenue : " + Ex.Number.ToString() + ":" + Ex.Message.ToString(), Ex.Number.ToString(), MessageBoxButtons.OK, MessageBoxIcon.Error); break; } }
/// <summary> /// 提交当前操作的结果 /// </summary> public int Commit() { try { int returnValue = dbcontext.SaveChanges(); if (dbTransaction != null) { dbTransaction.Commit(); this.Close(); } return(returnValue); } catch (Exception ex) { if (ex.InnerException != null && ex.InnerException.InnerException is OracleException) { OracleException sqlEx = ex.InnerException.InnerException as OracleException; throw SqlHelper.ThrowDataAccessException(sqlEx, sqlEx.Message); } throw; } finally { if (dbTransaction == null) { this.Close(); } } }
private static bool IsTransientError(OracleException oraEx) { // there may be more error codes that we need but there are so many to go through.... // http://docs.oracle.com/cd/B19306_01/server.102/b14219.pdf switch (oraEx.Number) { case -6403: // network address connect timeout case 51: // timeout waiting for a resource case 1033: // ORACLE initialization or shutdown in progress case 1034: // ORACLE not available case 1089: // immediate shutdown in progress - no operations are permitted case 3113: // Closed connection case 3135: // connection lost contact case 12150: // TNS:unable to send data case 12153: // TNS:not connected case 12154: // TNS:could not resolve the connect identifier specified case 12157: // TNS:internal network communication error case 12161: // TNS:internal error: partial data received case 12170: // TNS:connect timeout occurred case 12171: // TNS:could not resolve connect identifier case 12203: // TNS:could not connect to destination case 12224: // TNS:no listener case 12225: // TNS:destination host unreachable case 12537: // TNS: connection closed case 12541: // TNS:no listener case 12543: // TNS:destination host unreachable case 12545: // Connection Failed (Generally a network failure - Cannot Reach Host) case 12552: // TNS: Unable to send break case 12571: // TNS: packet writer failure return(true); default: return(false); } }
/// <summary> /// Create a string with as much specific database error as possible /// </summary> /// <param name="ex">The exception</param> /// <returns>A string</returns> public override string GetDatabaseSpecificError(Exception ex) { OracleException exp = null; StringBuilder sb = new StringBuilder(1024); if (ex is OracleException) { exp = ((OracleException)(ex)); for (int index = 0; index <= exp.Errors.Count - 1; index++) { sb.AppendLine(new string('*', 40)); sb.AppendLine("**** BEGIN: Oracle Exception #" + (index + 1).ToString() + " ****"); sb.AppendLine(" Type: " + exp.Errors[index].GetType().FullName); sb.AppendLine(" Message: " + exp.Errors[index].Message); sb.AppendLine(" Source: " + exp.Errors[index].Source); sb.AppendLine(" Number: " + exp.Errors[index].Number.ToString()); sb.AppendLine(" Procedure: " + exp.Errors[index].Procedure); sb.AppendLine(" BindIndex: " + exp.Errors[index].ArrayBindIndex.ToString()); sb.AppendLine("**** END: Oracle Exception #" + (index + 1).ToString() + " ****"); sb.AppendLine(new string('*', 40)); } } else { sb.Append(ex.Message); } return(sb.ToString()); }
internal MDBCommand(SqlCommand cmd) #endif { try { this.cmd = cmd; this.commandText = this.cmd.CommandText; #if POSTGRESQL this.cnn = new NpgsqlConnection(this.cmd.Connection.ConnectionString); #elif ORACLE this.cnn = new OracleConnection(this.cmd.Connection.ConnectionString); #elif SQLSERVER this.cnn = new SqlConnection(this.cmd.Connection.ConnectionString); #endif } catch (Exception exception) { #if POSTGRESQL throw new MDBException(exception, exception.Message); #elif ORACLE OracleException ex = exception as OracleException; throw new MDBException(exception, this.commandText, ex.Number); #elif SQLSERVER throw new MDBException(exception, exception.Message); #endif } }
public MDBDataAdapter(MDBCommand mdbCmd) { try { mdbCon = mdbCmd.cnn; #if POSTGRESQL NpgsqlCommand Cmd = new NpgsqlCommand(mdbCmd.CommandText, mdbCon); Cmd.CommandType = Cmd.CommandType; foreach (NpgsqlParameter par in mdbCmd.Parameters) { Cmd.Parameters.Add(par.ParameterName, par.NpgsqlDbType, par.Size).Value = par.Value; } this.adapter = new NpgsqlDataAdapter(Cmd); #else OracleCommand Cmd = new OracleCommand(mdbCmd.CommandText, mdbCon); Cmd.CommandType = mdbCmd.CommandType; foreach (OracleParameter par in mdbCmd.Parameters) { Cmd.Parameters.Add(par.ParameterName, par.OracleDbType, par.Size).Value = par.Value; } this.adapter = new OracleDataAdapter(Cmd); #endif } catch (Exception exception) { #if POSTGRESQL throw new MDBException(exception, exception.Message); #else OracleException ex = (OracleException)exception; throw new MDBException(exception, exception.Message, ex.Number); #endif } }
private void ProcesarExcepcion(OracleException pExcepcion) { IsError = true; ErrorDescripcion += " \n" + pExcepcion.Message + " \n"; ErrorDescripcion += pExcepcion.ErrorCode + " \n"; ErrorDescripcion += pExcepcion.StackTrace; }
private void exceptionProcessing(OracleException exception) { IsError = true; ErrorDescription += " \n" + exception.Message + " \n"; ErrorDescription += exception.ErrorCode + " \n"; ErrorDescription += exception.StackTrace; }
private static string GetDalExceptionMessage(OracleException ex) { switch (ex.Number) { // system case 1: return(ExceptionResources.DuplicateKeyError); case 1400: return(string.Format(ExceptionResources.FieldIsNullError, GetField(ex.Message))); // user case 20002: return(ExceptionResources.ForeignKeyConstraintError); default: if (ex.Number < ExceptionHelper.OraUserDefaultErrorNumber) { return(ExceptionResources.CommonDataError); } // убираем начало ошибки var message = ex.Message.Remove(0, ExceptionHelper.OraPrefLength); // выбираем только одну строку var index = message.IndexOf(ExceptionHelper.OraTemplate, StringComparison.Ordinal); return(index >= 0 ? message.Substring(0, index) : message); } }
public object this[string i] { get { object obj2 = null; try { obj2 = new MDBParameter((IDbDataParameter)this.paramCols[i]); } catch (Exception exception) { #if POSTGRESQL throw new MDBException(exception, exception.Message); #else OracleException ex = (OracleException)exception; throw new MDBException(exception, exception.Message, ex.Number); #endif } return(obj2); } set { this.paramCols[i] = ((MDBParameter)value).para; } }
public static void LogSqlException(OracleException exception) { if (exception != null) { LogSqlErrorCollection(exception.Errors); } }
/// <summary> /// Ads to the LogMessages file the message parsed as parameter /// </summary> /// <param name="message"></param> public static void LogMessage(OracleException exception) { string path = @"Logs.txt"; if (File.Exists(path)) { using (var logFile = new StreamWriter(path, true)) { var macAddr = ( from nic in NetworkInterface.GetAllNetworkInterfaces() where nic.OperationalStatus == OperationalStatus.Up select nic.GetPhysicalAddress().ToString() ).FirstOrDefault(); logFile.WriteLine(DateTime.UtcNow.ToString() + "\t\t" + macAddr + "\t\t" + exception.Message + "\t\t" + exception.StackTrace + "\t\t" + exception.Errors); } } else { using (var logFile = new StreamWriter(path, true)) { logFile.WriteLine("Date Time:\t\t\tMac Adress:\t\t\tError Message:\t\t\tStack:\t\t\tError: \n\n"); } LogMessage(exception); } }
public static Exception ThrowOracleUserException(OracleException ex, string commandText) { if (ex.Number == ORACLE_WRONG_PARAMETERS) { if (m_CachedParameters.ContainsKey(commandText)) { m_CachedParameters.Remove(commandText); } } if (ex.Number == ORACLE_USER_HANDLED_EXCEPTION_CODE) { var match = Regex.Match(ex.Message, "<ERROR ID=([0-9]+)>([^<]*)</ERROR>"); if (match.Success) { var errCode = int.Parse(match.Groups[1].Value); var errMessage = match.Groups[2].Value; if (!string.IsNullOrEmpty(errMessage)) { return(ErrorUtils.CreateErrorWithSubMessage(errCode, errMessage)); } return(ErrorUtils.CreateError(errCode)); } } return(ErrorUtils.CreateErrorWithSubMessage(ERR_SQL.ERR_SQL_EXECUTE_COMMAND_FAIL, ex.Message)); }
private DataAccessException GenericOraDbException(OracleException exception) { int errNr = exception.Number; string strErrCode = "ORA" + errNr.ToString(); return(new DataAccessException(exception.Message, strErrCode, exception));; }
private void ErrorMessage(OracleException Ex) { switch (Ex.Number) { case 02290: //check not in MessageBox.Show("Spécialisation invalide"); break; case 02292: // au lieu d'afficher violation de clé étrangère , on affiche ceci: MessageBox.Show("Impossible de supprimer le stage; un étudiant lui est assigné"); break; case 01400: //check not null MessageBox.Show("Il y a des champs obligatoires vides"); break; case 01438: // Si le number est plus long que spécifié MessageBox.Show("Impossible d'ajouter le stage; le numéro d'entreprise spécifié n'existe pas"); break; case 02291: MessageBox.Show("Impossible d'ajouter le stage; le numéro d'entreprise spécifié n'existe pas"); break; default: MessageBox.Show(Ex.Message.ToString()); break; } }
/// <summary> /// 针对性处理数据库异常 /// </summary> /// <param name="oraEx"></param> /// <param name="conn"></param> public static void HandleOraException(OracleException oraEx, OracleConnection conn) { if (oraEx == null) { return; } switch (oraEx.Number) { case 3113: //ORA-03113: 通信通道的文件结尾 //可能发生在重启数据库 OracleConnection.ClearAllPools(); throw new Exception("发生ORA-03113错误,已清空数据库连接池。", oraEx); case 28: //ORA-00028: 会话己被终止(session kill) - 发生在会话被Kill之后 case 1012: //ORA-01012: 没有登录(not logon) - 发生在ORA-00028后再访问数据库 case 2396: //ORA-02396: 超出最大空闲时间(exceeded maximum idle time) case 12535: //ORA-12535: TNS操作超时(TNS:operation timed out) if (conn != null) { OracleConnection.ClearPool(conn); throw new Exception("发生ORA-" + oraEx.Number.ToString() + "错误,已从数据库连接池清理掉当前连接。", oraEx); } else { OracleConnection.ClearAllPools(); throw new Exception("发生ORA-" + oraEx.Number.ToString() + "错误,已清空数据库连接池。", oraEx); } default: break; } //ORA-01089: 正在执行立即关闭 - 发生在数据库正在关闭 }
/// <summary> /// Fixes newlines in oracle error message /// </summary> /// <param name="message"></param> /// <param name="ex"></param> private void TraceOracleError(string message, OracleException ex) { String error = ex.Message; error = error.Replace(Environment.NewLine, "\n"); error = error.Replace("\n", Environment.NewLine + " "); Tracing.TraceEvent(TraceEventType.Error, 0, "{0}\r\n {1}{2}", message, error, ex.StackTrace); }
private void Erreur(OracleException exception) { FormErreur Erreur = new FormErreur(exception); if (Erreur.ShowDialog() == DialogResult.Cancel) { this.Close(); } }
// See Issue #985 private bool RetryOnExistsFailure(OracleException exception) { if (exception.Number == 1049) { ClearPool(); return(true); } return(false); }
private void oracleExceptionHandle(OracleException excep) { if (errorDisplayHtmlLabel != null) { errorDisplayHtmlLabel.Text = excep.Message; errorDisplayHtmlLabel.Visible = true; errorDisplayHtmlLabel.ForeColor = System.Drawing.Color.Red; } }
/// <summary> /// Returns a boolean indicating whether or not the given dbException is for a primary key constraint /// </summary> /// <param name="dbe">DbException object</param> /// <returns>True if dbException is a primary key violation</returns> public override bool IsPrimaryKeyViolation(DbException dbException) { OracleException oracleException = (OracleException)dbException; if (oracleException.ErrorCode == OracleDb.Constants.DBError_UniqueConstraintViolation) { return(true); } return(false); }
public override bool IsPrimaryKeyViolation(Exception Error) { OracleException error = Error as OracleException; if (error != null && error.Code == 2627) { return(true); } return(false); }
public OracleExceptionHandler(OracleException exception) { var messageMatch = Regex.Match(exception.Message, @"(?<=ORA-20201: ).*"); var message = messageMatch.Value; Title = exception.ErrorCode.ToString(); Type = exception.HelpLink; Status = StatusCodes.Status500InternalServerError; Detail = message.Length > 0 ? message : "Nie można wykonać tej operacji z powodu błędu serwera."; }
static public esConcurrencyException CheckForConcurrencyException(OracleException ex) { esConcurrencyException ce = null; if (ex.ErrorCode == 20101) { ce = new esConcurrencyException(ex.Message, ex); ce.Source = ex.Source; } return(ce); }
internal void Disconnect(OracleException exception) { OracleSchemaResolver.Unregister(this); if (!_isInitialized) { return; } _isInitialized = false; Disconnected?.Invoke(this, new DatabaseModelConnectionErrorArgs(exception)); }
private void ErrorMessage(OracleException Ex) { switch (Ex.Number) { case 2292: MessageBox.Show("Le livre à déjà été louer", "Erreur 2292", MessageBoxButtons.OK, MessageBoxIcon.Error); break; default: MessageBox.Show("Une erreur non-gerer est survenue : " + Ex.Number.ToString() + ":" + Ex.Message.ToString(), Ex.Number.ToString(), MessageBoxButtons.OK, MessageBoxIcon.Error); break; } }
public MDBCommand(string cmdText, MDBConnection m_mdbCnn) { try { #if POSTGRESQL cmdText = cmdText.Replace("to_date", "to_timestamp"); this.commandText = cmdText; this.cnn = m_mdbCnn.con; this.cmd = new NpgsqlCommand(this.commandText, m_mdbCnn.con); this.cmd.CommandType = CommandType.Text; this.cmd.CommandTimeout = 30; #elif ORACLE string s_Text = cmdText.Trim().Trim(';'); s_Text = s_Text.Trim('\n'); s_Text = s_Text.Trim('\r'); s_Text = s_Text.Trim('\n'); s_Text = s_Text.Trim(';'); string[] sText = s_Text.Split(';'); if (sText.Length > 1) { cmdText = "begin\n" + s_Text + ";\n" + "end;\n"; } else { cmdText = s_Text; } this.commandText = cmdText; this.cnn = m_mdbCnn.con; this.cmd = new OracleCommand(this.commandText, m_mdbCnn.con); this.cmd.CommandType = CommandType.Text; this.cmd.CommandTimeout = 30; #elif SQLSERVER this.commandText = cmdText; this.cnn = m_mdbCnn.con; this.cmd = new SqlCommand(this.commandText, m_mdbCnn.con); this.cmd.CommandType = CommandType.Text; this.cmd.CommandTimeout = 30; #endif } catch (Exception exception) { #if POSTGRESQL throw new MDBException(exception, exception.Message); #elif ORACLE OracleException ex = exception as OracleException; throw new MDBException(exception, this.commandText, ex.Number); #elif SQLSERVER throw new MDBException(exception, exception.Message); #endif } }
public int ExecuteNonQuery() { int i_Val = 0; try { i_Val = this.cmd.ExecuteNonQuery(); } #if POSTGRESQL catch (Exception e) { if (e.Message.Contains("An existing connection was forcibly closed by the remote host.") || e.Message.Contains("The Connection is broken.") || e.Message.Contains("Failed to establish a connection") || e.Message.Contains("the database system is starting up") || e.Message.Contains(" the database system is starting up")) { i_Val = 999; } else { i_Val = -1; } throw new MDBException(e, e.Message, i_Val); } #elif ORACLE catch (OracleException e) { OracleException ex = e as OracleException; i_Val = ex.Number; throw new MDBException(e, this.commandText, ex.Number); } #elif SQLSERVER catch (Exception e) { if (e.Message.Contains("An existing connection was forcibly closed by the remote host.") || e.Message.Contains("The Connection is broken.") || e.Message.Contains("Failed to establish a connection") || e.Message.Contains("the database system is starting up") || e.Message.Contains(" the database system is starting up")) { i_Val = 999; } else { i_Val = -1; } throw new MDBException(e, e.Message, i_Val); } #endif finally { } return(i_Val); }
public void Update(DataTable tbl) { try { this.adapter.Update(tbl); } catch (Exception exception) { #if POSTGRESQL throw new MDBException(exception, exception.Message); #else OracleException ex = (OracleException)exception; throw new MDBException(exception, exception.Message, ex.Number); #endif } }
public void Update(DataSet ds, string tableName) { try { this.adapter.Update(ds, tableName); } catch (Exception exception) { #if POSTGRESQL throw new MDBException(exception, exception.Message); #else OracleException ex = (OracleException)exception; throw new MDBException(exception, exception.Message, ex.Number); #endif } }
public static void ErrorMessage(OracleException Ex) { switch (Ex.Number) { case 1017: Console.WriteLine("*Erreur Usager/Mot de passe"); break; case 12170: Console.WriteLine("Erreur 12170:La base de données est indisponible,réessayer plus tard"); break; case 12543: Console.WriteLine("Erreur 12543:Connexion impossible,Vérifiez votre connection internet"); break; default: Console.WriteLine(Ex.Message.ToString()); break; } }
public OracleDataStoreException(OracleException ex, OracleCommand cmd) : base("", ex) { StringBuilder sb = new StringBuilder(); if (ex.Number == 24381) { // error(s) in array DML // See http://docs.oracle.com/html/B14164_01/featOraCommand.htm foreach (var error in ex.Errors.OfType<OracleError>()) { sb.AppendFormat("Array Bind Error {0} occured at Row Number {1}", error.Message, error.ArrayBindIndex); sb.AppendLine(); } } else { foreach (var error in ex.Errors.OfType<OracleError>()) { sb.AppendLine(error.Message); } } #if DEBUG if (cmd != null) { sb.AppendLine("Additional Debug Mode Information"); sb.AppendLine(cmd.CommandText); foreach (OracleParameter param in cmd.Parameters) { sb.AppendFormat("{0} ({1} {2}: *{3}*)", param.ParameterName, param.Direction, param.OracleDbType, param.Value); sb.AppendLine(); } } #endif _message = sb.ToString(); var ev = new OracleDataStoreErrorEvent("OracleDataStoreException is being raised", cmd, this); ev.Raise(); }
private static FrameworkException FormatException(OracleException ex, IDbCommand command) { return new FrameworkException("Error executing command: " + ex.Message + Environment.NewLine + command.CommandText, ex); }
/// <summary> /// This Method determines if exception due to conn failure/DB operation /// </summary> /// <param name="Ex"> Exception </param> /// <returns>Error Code</returns> /// private string ExpType(OracleException Ex) { foreach (int ErrNo in PST_Constants.dbstatusFlags) { if (Ex.ErrorCode.Equals(ErrNo)) { return "101"; } } return "102"; }
/* [WebMethod] public ts_UpdateOutputEntity updateTimesheetEntry_New(ts_InputEntity TS_Input) { logger.Info("Method : updateTimesheetEntry Start"); List<ts_UpdateInputEntity> IS_Entry_List = TS_Input.obj; ts_UpdateInputEntity[] TS_Entry = IS_Entry_List.Cast<ts_UpdateInputEntity>().ToArray(); logger.Debug("Method : updateTimesheetEntry Transaction ID value : " + TS_Entry[0].TransactionID.ToString()); ts_UpdateOutputEntity result = new ts_UpdateOutputEntity(); try { timesheetInterface updateTS_IS = new timesheetInterface(); result = updateTS_IS.updateTimesheetEntry_SI(TS_Entry); logger.Info("Method : updateTimesheetEntry Stop"); return result; } catch (OracleException ex) { logger.Fatal("Database Exception At Web Method : updateTimesheetEntry" + ex.Message.ToString()); ThrowSoapException soapExp = new ThrowSoapException(); soapExp.EmailException(ex); //soapExp.convertToSoapException(ex); string ErrorMsg = ((NameValueCollection)System.Configuration.ConfigurationManager.GetSection("ErrorMessage"))["101"]; result.StatusFlag = 1; result.Message = ErrorMsg; logger.Debug("Return object Error : ErrorCode = " + result.StatusFlag.ToString()); logger.Debug("Return object Error : ErrorMessage = " + result.Message); logger.Error("Method : updateTimesheetEntry Stop"); return result; } catch (Exception ex) { logger.Fatal("Exception At Web Method : updateTimesheetEntry" + ex.Message.ToString()); ThrowSoapException soapExp = new ThrowSoapException(); soapExp.EmailException(ex); //soapExp.convertToSoapException(ex); result.StatusFlag = 1; result.Message = "ERROR"; logger.Debug("Return object Error : ErrorCode = " + result.StatusFlag.ToString()); logger.Debug("Return object Error : ErrorMessage = " + result.Message); logger.Error("Method : updateTimesheetEntry Stop"); return result; } }*/ /// <summary> /// This Method determines if exception due to conn failure/DB operation /// </summary> /// <param name="Ex"> Exception </param> /// <returns>Error Code</returns> /// private string ExpType(OracleException Ex) { foreach (int ErrNo in timesheet_Constants.dbErrorCodes) { if (Ex.Code.Equals(ErrNo)) { return "101"; } } return "102"; }
/// <summary> /// Logs an Oracle exception to the event log. /// </summary> /// <param name="e">The exception to log.</param> /// <param name="log">The event log to log the execption to.</param> /// <returns>True if the exception was logged successfully. False otherwise.</returns> protected bool LogException(OracleException e, EventLog.EventLog log) { if (log != null) { log.Log(new Event(typeof(OracleUtility).FullName, DateTime.Now, Event.SeverityLevels.Error, e.GetType().FullName, "Number:\n" + e.Number + "\n" + "Description:\n" + e.Message + "\n" + "Stack Trace:\n" + e.StackTrace)); return true; } else { return false; } }
private bool TryHandleConnectionTerminatedError(OracleException exception) { var errorCode = (OracleErrorCode)exception.Number; if (!errorCode.In(OracleErrorCode.EndOfFileOnCommunicationChannel, OracleErrorCode.NotConnectedToOracle, OracleErrorCode.TnsPacketWriterFailure, OracleErrorCode.SessionTerminatedByDebugger, OracleErrorCode.UnableToSendBreak)) { return false; } InitializeUserConnection(); _userTraceFileName = String.Empty; lock (_activeTraceEvents) { _activeTraceEvents.Clear(); } _databaseModel.Disconnect(exception); _userTransaction = null; _userSessionIdentifier = null; return true; }
private static string ReportSqlErrors(OracleException ex) { StringBuilder sb = new StringBuilder(); OracleError[] errors = new OracleError[ex.Errors.Count]; ex.Errors.CopyTo(errors, 0); foreach (var err in errors) { sb.Append(err.Message); sb.Append(", ErrorNumber ").Append(err.Number); if (!string.IsNullOrEmpty(err.Procedure)) sb.Append(", Procedure ").Append(err.Procedure); if (!string.IsNullOrEmpty(err.Source)) sb.Append(", Source: ").Append(err.Source); sb.AppendLine(); } return sb.ToString(); }
public SqlResult(OracleException exception) { this.exception = exception; }