Esempio n. 1
0
 private SqlConnection SQLConnect(string stringConnection)
 {
     try
     {
         SqlConnection Con = new SqlConnection(stringConnection);
         Con.Open();
         return(Con);
     }
     catch (Exception e)
     {
         ExecutionErro.Add("Erro ao abrir conexão com o banco");
         ExecutionErro.Add(e.Message.ToString());
         return(null);
     }
 }
Esempio n. 2
0
        public bool Restorebackup()
        {
            string DatabaseName = ConnectionInfoDB.DbName;
            string FileName     = DatabaseName + ".bak";
            string cnnScring    = Util.GetConnectionString(ConnectionInfoDBtemp) + " ;Database=MASTER";

            //Realiza o RollBack
            //Restaura o ultimo banco de dados Full
            string RestoreCommand1 = "DECLARE @LastBackup int;\r\n" +
                                     "SET @LastBackup = (SELECT Top 1 position FROM msdb..backupset where database_name = '" + DatabaseName + "' And type = 'D' and is_snapshot = 0 " +
                                     "order by backup_finish_date desc)\r\n" +

                                     "Restore Database " + DatabaseName + " " +
                                     "from Disk = '" + FileName + "' " +
                                     "WITH FILE = @LastBackup ,NORECOVERY";

            //Restaura o ultimo banco de dados Incremental
            string RestoreCommand2 = "DECLARE @LastBackup int;\r\n" +
                                     "SET @LastBackup = (SELECT Top 1 position FROM msdb..backupset where database_name = '" + DatabaseName + "' and is_snapshot = 0 " +
                                     "order by backup_finish_date desc)\r\n" +

                                     "Restore Database  " + DatabaseName + " " +
                                     "FROM Disk = '" + FileName + "' " +
                                     "With FILE = @LastBackup ,Recovery, stats=10";

            try
            {
                ExecuteCommand(cnnScring, "ALTER DATABASE " + DatabaseName + " SET SINGLE_USER WITH ROLLBACK IMMEDIATE");
                ExecuteCommand(cnnScring, RestoreCommand1);
                ExecuteCommand(cnnScring, RestoreCommand2);
                ExecuteCommand(cnnScring, "EXEC sp_dboption '" + DatabaseName + "', 'single user', 'false'");
                ExecutionErro.Add("Backup Restaurado.");
                return(false);
            }
            catch (Exception Err)
            {
                ExecuteCommand(cnnScring, "EXEC sp_dboption '" + DatabaseName + "', 'single user', 'false'");
                ExecutionErro.Add("Erro ao restaurar o Backup.\r\n\r\nError message: " + Err.Message.ToString());
                return(true);
            }
        }
Esempio n. 3
0
 /* *******************************************************************************************
 * Executa um determinado comando no SQL.
 *********************************************************************************************/
 public bool ExecuteCommand(string _ConnectionString, string queryString)
 {
     using (SqlConnection connection = new SqlConnection(_ConnectionString))
     {
         SqlCommand command = new SqlCommand(queryString, connection);
         try
         {
             command.Connection.Open();
             int Ret = command.ExecuteNonQuery();
             command.Connection.Close();
             command.Connection.Dispose();
             return(false);
         }
         catch (Exception e)
         {
             command.Connection.Close();
             command.Connection.Dispose();
             ExecutionErro.Add(e.Message.ToString());
             return(true);
         }
     }
 }
Esempio n. 4
0
        /* *******************************************************************************************
        * Roda o Script de Criação do Banco
        *********************************************************************************************/
        public void DBCreateByScript(string _ConnectionString, List <string> SQLScript)
        {
            string ExecuteLine = "";

            try
            {
                SQLScript = SQLScript.Where(l => l.Trim().Length > 0 && (!l.StartsWith("/*") || !l.EndsWith("*/"))).ToList <string>();

                switch (ConnectionInfoDB.ServerType)
                {
                case Util.DatabaseType.SQL:
                    SqlConnection  Connect         = SQLConnect(_ConnectionString);
                    SqlTransaction _SqlTransaction = Connect.BeginTransaction();

                    try
                    {
                        if (Connect != null)
                        {
                            //SqlTransaction _SqlTransaction = Connect.BeginTransaction();
                            ExecuteCommand(_ConnectionString + ";Initial Catalog=master", "if db_id('" + NewDatabase + "') is  null CREATE DATABASE [" + NewDatabase + "]");
                            SqlCommand Command = new SqlCommand("USE [" + NewDatabase + "]", Connect, _SqlTransaction);
                            CleanDatabase(Util.GetConnectionString(ConnectionInfoDBtemp, true));
                            Command.ExecuteNonQuery();

                            foreach (string Line in SQLScript)
                            {
                                if (Line.Trim().ToUpper() != "GO")
                                {
                                    ExecuteLine += Line + "\r\n";
                                }
                                else
                                {
                                    //Command.CommandText = ExecuteLine;
                                    //int RetVal = Command.ExecuteNonQuery();

                                    Command = new SqlCommand(ExecuteLine, Connect, _SqlTransaction);
                                    Command.ExecuteNonQuery();
                                    ExecuteLine = "";
                                }
                            }
                            if (ExecuteLine.Length > 0)
                            {
                                Command = new SqlCommand(ExecuteLine, Connect, _SqlTransaction);
                                Command.ExecuteNonQuery();
                                ExecuteLine = "";
                            }
                            _SqlTransaction.Commit();
                            Connect.Close();
                        }
                        else
                        {
                            ExecutionErro.Add("Erro ao criar ao abrir Conexão.");
                        }
                    }
                    catch (Exception e)
                    {
                        _SqlTransaction.Rollback();
                        Connect.Close();
                        ExecutionErro.Add("Erro ao criar o banco de dados temporário");
                        ExecutionErro.Add(e.Message.ToString());
                    }
                    break;

                case Util.DatabaseType.ORACLE:
                    break;

                default:
                    break;
                }
            }
            catch (Exception Ex)
            {
            }
        }