Click here to Skip to main content
15,895,256 members
Articles / Database Development / SQL Server / SQL Server 2008

Continuous Integration for Databases with Visual Studio

Rate me:
Please Sign up or sign in to vote.
4.85/5 (14 votes)
23 Nov 2010Apache18 min read 63.4K   1.2K   68  
Provides a framework for predictably compiling, extracting, and deploying a database project.
// <copyright file="ScriptExecutorEventArgs.cs" company="Adam Nachman">
// Copyright (c) 2009 All Right Reserved Adam Nachman
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// </copyright>
// <author>Adam Nachman</author>
namespace SqlDeployment
{
    using System;

    public class ScriptExecutorEventArgs : EventArgs
    {
        #region Private Variables

        private EventMessageCode eventCode;
        private string eventMessage;

        #endregion Private Variables

        #region Constructors

        /// <summary>
        /// Initializes a new instance of the ScriptExecutorEventArgs class
        /// </summary>
        /// <param name="eventCode">The event code</param>
        /// <param name="eventMessage">The event message</param>
        public ScriptExecutorEventArgs(EventMessageCode eventCode, string eventMessage)
        {
            this.eventCode = eventCode;
            this.eventMessage = eventMessage;
        }

        #endregion Constructors

        #region Public Enums

        /// <summary>
        /// The various message types in use
        /// </summary>
        public enum EventMessageCode
        {
            /// <summary>
            /// Script is executing
            /// </summary>
            ScriptExecution = 0,

            /// <summary>
            /// Script execution is complete
            /// </summary>
            ExecutionComplete = 1,

            /// <summary>
            /// An informational message from the connection
            /// </summary>
            SqlInfoMessage = 2,

            /// <summary>
            /// Stopping execution by request of the consuming class
            /// </summary>
            ExecutionStoppingByRequest = 3,

            /// <summary>
            /// Execution stopped by request of the consuming class
            /// </summary>
            ExecutionStoppedByRequest = 4,

            /// <summary>
            /// The count of the objects in the script
            /// </summary>
            ObjectCount = 100000,

            /// <summary>
            /// The current progress
            /// </summary>
            Progress = 100010,
        }

        #endregion Public Enums

        #region Public Methods

        /// <summary>
        /// Gets or sets the message associated with the event
        /// </summary>
        public string EventMessage
        {
            get
            {
                return this.eventMessage;
            }

            set
            {
                this.eventMessage = value;
            }
        }

        /// <summary>
        /// Gets or sets the Event Code associated with the event
        /// </summary>
        public EventMessageCode EventCode
        {
            get
            {
                return this.eventCode;
            }

            set
            {
                this.eventCode = value;
            }
        }

        #endregion Public Methods
    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Apache License, Version 2.0


Written By
Chief Technology Officer
Australia Australia
Emigrated to Sydney, Australia in 2013 from Cape Town, South Africa, and have been writing commercial software since 1997.

Expertise includes MS SQL Server (7 till latest), C#, VB6, VB.NET, VBScript, JavaScript, ASP, HTML, WPF Angular, Windows Installer and InstallShield (multiple versions) and a partridge in a pear tree. MSBuild, CruiseControl.NET, TFS, Jenkins, TeamCity, ant and nant are all necessary sidelines. Have tinkered with Java and C++

Experienced with Enterprise level application design and deployment, as well as sizing and scaling high volume OLTP database designs up to tens of thousands of transactions per second and diagnosing application and database performance bottlenecks.

Comments and Discussions