/// <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); }
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); }
/// <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(); } } }