Example #1
0
        public void AddRow(DateTime _InTime, int Type, int Severity, string Title, string Msg, int AlarmGroupID = 0, int State = 0)
        {
            ErrList_XSD.ErrListRow dr = _xsd.ErrList.NewErrListRow();
            dr._InTime      = _InTime;
            dr.Type         = Type;
            dr.Severity     = Severity;
            dr.Title        = Title;
            dr.Msg          = Msg;
            dr.AlarmGroupID = AlarmGroupID;
            dr.State        = State;
            dr.Icon         = imageList1.Images[dr.Type];

            _xsd.ErrList.Rows.Add(dr);
        }
Example #2
0
        /// <summary>
        /// 获取数据库连接传回的消息并显示到界面
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void sc_InfoMessage(object sender, SqlInfoMessageEventArgs e)
        {
            Apq.Windows.Delegates.Action_UI <TabPage>(this, tpInfo, delegate(TabPage ctrl)
            {
                foreach (SqlError r in e.Errors)
                {
                    if (r.Class > 0)
                    {
                        TextBox txtMsg       = new TextBox();
                        txtMsg.Multiline     = true;
                        txtMsg.ReadOnly      = true;
                        txtMsg.ScrollBars    = ScrollBars.Vertical;
                        txtMsg.WordWrap      = false;
                        txtMsg.AcceptsTab    = true;
                        txtMsg.AcceptsReturn = true;

                        txtMsg.BorderStyle = BorderStyle.None;
                        txtMsg.BackColor   = System.Drawing.SystemColors.Control;
                        txtMsg.Font        = new System.Drawing.Font("新宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
                        txtMsg.Size        = new System.Drawing.Size(tc.Width - 30, 20);

                        int nY = 9;
                        foreach (Control c in tpInfo.Controls)
                        {
                            nY += c.Size.Height;
                            nY += 6;
                        }
                        txtMsg.Location = new System.Drawing.Point(3, nY);

                        if (r.Class > 10)
                        {
                            txtMsg.Size = new System.Drawing.Size(this.Parent.Parent.Width - 40, 140);                            //7行
                            //meMsg.Properties.ScrollBars = System.Windows.Forms.ScrollBars.Both;
                            txtMsg.ForeColor = System.Drawing.Color.Red;
                            txtMsg.Text     += string.Format("消息 {0}, 级别 {1}, 状态 {2}, 第 {3} 行\r\n", r.Number, r.Class, r.State, r.LineNumber);
                        }

                        txtMsg.Text += r.Message;

                        tpInfo.Controls.Add(txtMsg);

                        // 将错误记录到 SqlEdit 的 dsServers 和 dsUI
                        SqlEdit se      = null;
                        Control ctrlTmp = this;
                        int ServerID    = 0;
                        while (ctrlTmp != null)
                        {
                            ctrlTmp = ctrlTmp.Parent;
                            se      = ctrlTmp as SqlEdit;
                            if (se != null)
                            {
                                break;
                            }

                            TabPage xtp = ctrlTmp as TabPage;
                            if (xtp != null)
                            {
                                ServerID = Apq.Convert.ChangeType <int>(xtp.Tag);
                            }
                        }

                        DataView dvErr  = new DataView(se.SqlEditDoc.dsDBC.DBI);
                        dvErr.RowFilter = "DBIID = " + ServerID;
                        // 标记本服执行出错
                        if (dvErr.Count > 0)
                        {
                            object rtLock = se.SqlEditDoc.GetLock(ServerID.ToString());
                            lock (rtLock)
                            {
                                ErrList_XSD.ErrListRow drErrList = se.SqlEditDoc.dsErr.ErrList.NewErrListRow();
                                drErrList.DBIID        = ServerID;
                                drErrList["__DBIName"] = dvErr[0]["SqlName"];
                                drErrList.s            = r.Message;
                                se.SqlEditDoc.dsErr.ErrList.Rows.Add(drErrList);

                                dvErr[0]["Err"] = true;
                            }
                        }
                    }
                }
            });
        }