Exemple #1
0
            protected override void DispatchMessages(bool ignoreNonFatalMessages)
            {
                SqlException exception = base.ProcessMessages(false, ignoreNonFatalMessages);

                if (exception != null)
                {
                    SqlConnection connection = this._connection.Connection;
                    if ((connection != null) && connection.FireInfoMessageEventOnUserErrors)
                    {
                        connection.OnInfoMessage(new SqlInfoMessageEventArgs(exception));
                    }
                    else
                    {
                        this._connection.OnError(exception, false);
                    }
                }
            }
            override protected void DispatchMessages(bool ignoreNonFatalMessages)
            {
                // Override this on the Connection event sink, since we can deal
                // with info messages here.
                SqlException exception = ProcessMessages(false, ignoreNonFatalMessages);

                if (null != exception)
                {
                    // SQLBUVSTS 225982, query for connection once to avoid race condition between GC (that may collect the connection) and the user thread
                    SqlConnection connection = _connection.Connection;
                    if (null != connection && connection.FireInfoMessageEventOnUserErrors)
                    {
                        connection.OnInfoMessage(new SqlInfoMessageEventArgs(exception));
                    }
                    else
                    {
                        _connection.OnError(exception, false);    // we can't really ever break the direct connection, can we?
                    }
                }
            }
Exemple #3
0
        // Fires a single InfoMessageEvent
        private void FireInfoMessageEvent(SqlConnection connection, TdsParserStateObject stateObj, SqlError error)
        {
            string serverVersion = null;

            Debug.Assert(connection != null && _connHandler.Connection == connection);

            if (_state == TdsParserState.OpenLoggedIn)
            {
                serverVersion = _connHandler.ServerVersion;
            }

            SqlErrorCollection sqlErs = new SqlErrorCollection();

            sqlErs.Add(error);

            SqlException exc = SqlException.CreateException(sqlErs, serverVersion, _connHandler);

            bool notified;
            connection.OnInfoMessage(new SqlInfoMessageEventArgs(exc), out notified);
            if (notified)
            {
                // observable side-effects, no retry
                stateObj._syncOverAsync = true;
            }
            return;
        }
 private void FireInfoMessageEvent(SqlConnection connection, TdsParserStateObject stateObj, SqlError error)
 {
     string serverVersion = null;
     if (this._state == TdsParserState.OpenLoggedIn)
     {
         serverVersion = this._connHandler.ServerVersion;
     }
     SqlErrorCollection errorCollection = new SqlErrorCollection();
     errorCollection.Add(error);
     SqlException exception = SqlException.CreateException(errorCollection, serverVersion);
     connection.OnInfoMessage(new SqlInfoMessageEventArgs(exception));
 }