Ejemplo n.º 1
0
        private void RaiseErrorEvent(string info, string message, UserErrorType type, SqlConnection conn)
        {
            // Raise a custom event. Both SqlTrace and Extended Events can capture this event.
            string sql = "EXEC sp_trace_generateevent @eventid = @eventid, @userinfo = @userinfo, @userdata = @userdata;";

            try
            {
                using (SqlCommand cmd = new SqlCommand(sql))
                {
                    cmd.Connection = conn;
                    cmd.Parameters.Add(new SqlParameter("@eventid", System.Data.SqlDbType.Int)
                    {
                        Value = type
                    });
                    cmd.Parameters.Add(new SqlParameter("@userinfo", System.Data.SqlDbType.NVarChar, 128)
                    {
                        Value = info
                    });
                    cmd.Parameters.Add(new SqlParameter("@userdata", System.Data.SqlDbType.VarBinary, 8000)
                    {
                        Value = Encoding.Unicode.GetBytes(message.Substring(0, message.Length > 8000 ? 8000 : message.Length))
                    });
                    cmd.ExecuteNonQuery();
                }
            }
            catch (Exception ex)
            {
                logger.Warn($"Worker[{Name}] - Unable to raise error event. Message: " + ex.Message);
            }
        }
Ejemplo n.º 2
0
        private void RaiseErrorEvent(string info, string message, UserErrorType type, SqlConnection conn)
        {
            // Raise a custom event. Both SqlTrace and Extended Events can capture this event.
            string sql = "EXEC sp_trace_generateevent @eventid = @eventid, @userinfo = @userinfo, @userdata = @userdata;";

            using (SqlCommand cmd = new SqlCommand(sql))
            {
                cmd.Connection = conn;
                cmd.Parameters.AddWithValue("@eventid", type);
                cmd.Parameters.AddWithValue("@userinfo", info);
                cmd.Parameters.AddWithValue("@userdata", Encoding.Unicode.GetBytes(message.Substring(0, message.Length > 8000 ? 8000 : message.Length)));
                cmd.ExecuteNonQuery();
            }
        }