public static void DeriveParameters(SqlCommand command)
 {
     SqlConnection.ExecutePermission.Demand();
     if (command == null)
     {
         throw ADP.ArgumentNull("command");
     }
     SNIHandle target = null;
     RuntimeHelpers.PrepareConstrainedRegions();
     try
     {
         target = SqlInternalConnection.GetBestEffortCleanupTarget(command.Connection);
         command.DeriveParameters();
     }
     catch (OutOfMemoryException exception3)
     {
         if ((command != null) && (command.Connection != null))
         {
             command.Connection.Abort(exception3);
         }
         throw;
     }
     catch (StackOverflowException exception2)
     {
         if ((command != null) && (command.Connection != null))
         {
             command.Connection.Abort(exception2);
         }
         throw;
     }
     catch (ThreadAbortException exception)
     {
         if ((command != null) && (command.Connection != null))
         {
             command.Connection.Abort(exception);
         }
         SqlInternalConnection.BestEffortCleanup(target);
         throw;
     }
 }
Example #2
0
	public static void DeriveParameters (SqlCommand command)
	{
		command.DeriveParameters ();
	}
        static public void DeriveParameters(SqlCommand command) { // MDAC 65927\
            SqlConnection.ExecutePermission.Demand();

            if (null == command) {
                throw ADP.ArgumentNull("command");
            }
            TdsParser bestEffortCleanupTarget = null;
            RuntimeHelpers.PrepareConstrainedRegions();
            try {
#if DEBUG
                TdsParser.ReliabilitySection tdsReliabilitySection = new TdsParser.ReliabilitySection();

                RuntimeHelpers.PrepareConstrainedRegions();
                try {
                    tdsReliabilitySection.Start();
#else
                {
#endif
                    bestEffortCleanupTarget = SqlInternalConnection.GetBestEffortCleanupTarget(command.Connection);
                    command.DeriveParameters();
                }
#if DEBUG
                finally {
                    tdsReliabilitySection.Stop();
                }
#endif
            }
            catch (System.OutOfMemoryException e) {
                if (null != command && null != command.Connection) {
                    command.Connection.Abort(e);
                }
                throw;
            }
            catch (System.StackOverflowException e) {             
                if (null != command && null != command.Connection) {
                    command.Connection.Abort(e);
                }
                throw;
            }
            catch (System.Threading.ThreadAbortException e)  {            
                if (null != command && null != command.Connection) {
                    command.Connection.Abort(e);
                }
                SqlInternalConnection.BestEffortCleanup(bestEffortCleanupTarget);
                throw;
            }
        }