Ejemplo n.º 1
0
        /// <summary>
        /// Executes the script.
        /// </summary>
        /// <remarks>
        /// Use script.Execute(transaction) to do the work. We will also pull the
        /// status of our script exection from here.
        /// </remarks>
        /// <param name="scriptName">Name of the script.</param>
        /// <param name="transaction">The current transaction.</param>
        /// <param name="dbUserName">Name of the DB owner.</param>
        public static void ExecuteScript(string scriptName, SqlTransaction transaction, string dbUserName)
        {
            var scriptRunner = new SqlScriptRunner(UnpackEmbeddedScript(scriptName), Encoding.UTF8);

            if (!string.IsNullOrEmpty(dbUserName))
            {
                scriptRunner.TemplateParameters.SetValue("dbUser", dbUserName);
            }
            scriptRunner.Execute(transaction);
        }
Ejemplo n.º 2
0
        private static Task ExecuteNonQuery(SqlConnection cnx, string sql)
        {
            var runner = new SqlScriptRunner(sql);

            using (var transaction = cnx.BeginTransaction())
            {
                runner.Execute(transaction);
                transaction.Commit();
            }

            return(Task.CompletedTask);
        }
        ////////////////////////////////////////////////////////////////
        /// <summary>
        /// Initializes underlying storage.
        /// </summary>
        /// <remarks>
        /// Storage will be created and initialized or
        /// recreated if existed before.
        ///
        /// This implementation uses <see cref="SqlScriptRunner"/> to
        /// execute DB creation script.
        ///
        /// DB creation script shall be specified during
        /// provider creation.
        /// </remarks>
        public void InitializeStorage()
        {
            if (m_createDbScriptPath == null)
            {
                throw new Exception("Database creation script wasn't specified");
            }

            string connString;

            // Use DbManager.Connection to access connection string
            using (DbManager db = new DbManager())
            {
                connString = db.Connection.ConnectionString;
            }
            // Use script runner to execute script
            SqlScriptRunner runner = new SqlScriptRunner(connString);

            runner.Execute(m_createDbScriptPath);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Sets up the database.
        /// </summary>
        internal static void SetupDatabase()
        {
            var connectionString = GetConnectionString();

            using (var connection = new SqlConnection(connectionString))
            {
                connection.Open();
                var createDbStmt = GetTextFromEmbededFile("DataAccess.Sql.Test.Scripts.CreateDb.sql");
                using (var cmd = new SqlCommand(createDbStmt, connection))
                {
                    cmd.ExecuteNonQuery();
                }

                var queryString = GetTextFromEmbededFile("DataAccess.Sql.Test.Scripts.SetupDb.sql");
                var runner      = new SqlScriptRunner(queryString);

                using (var transaction = connection.BeginTransaction())
                {
                    runner.Execute(transaction);
                    transaction.Commit();
                }
            }
        }