Ejemplo n.º 1
0
        //========================================================================================
        // GetUserErrors()
        //========================================================================================

        public static MessageCollection GetUserErrors(DatabaseConnection dbase)
        {
            string CR       = Environment.NewLine;
            var    messages = new MessageCollection();

            string sql =
                "SELECT name, line, position, text"
                + " FROM User_Errors"
                + " ORDER BY name, line, position";

            try
            {
                OracleConnection con = dbase.OraConnection;
                using (var cmd = new OracleCommand(sql, con))
                {
                    using (var da = new OracleDataAdapter())
                    {
                        da.SelectCommand = cmd;
                        var ds = new DataSet();

                        if (con.State != ConnectionState.Open)
                        {
                            con.Open();
                        }

                        int count = da.Fill(ds);

                        if (count > 0)
                        {
                            var msg = new StringBuilder();

                            string divider = CR
                                             + "-".PadRight(15, '-')                                    // name
                                             + " -".PadRight(8, '-')                                    // line
                                             + " -".PadRight(7, '-')                                    // position
                                             + " -".PadRight(80, '-');                                  // text

                            msg.Append(CR
                                       + "Name".PadRight(15, ' ')
                                       + " Line".PadRight(8, ' ')
                                       + " Offset".PadRight(7, ' ')
                                       + " Text");

                            msg.Append(divider);

                            DataRow row = null;
                            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                            {
                                row = ds.Tables[0].Rows[i];

                                msg.Append(CR
                                           + row["name"].ToString().PadRight(16, ' ')
                                           + row["line"].ToString().PadRight(8, ' ')
                                           + row["position"].ToString().PadRight(7, ' ')
                                           + row["text"].ToString()
                                           );

                                if (i < (ds.Tables[0].Rows.Count - 1))
                                {
                                    msg.Append(CR + divider);
                                }
                            }

                            messages.Add(
                                new Message(Message.MessageType.Error, msg.ToString()));
                        }
                    }
                }
            }
            catch (Exception exc)
            {
                if (exc.Message == String.Empty)
                {
                    messages.Add(
                        new Message(Message.MessageType.Error, exc.StackTrace));
                }
                else
                {
                    messages.Add(
                        new Message(Message.MessageType.Error, exc.Message));
                }
            }

            return(messages);
        }