//Derruba as conexões abertas com o Banco de dados. public string fechaConBD(ConexaoERP ConnErp, int caso) { string consulta = ""; string result = ""; string connStrMaster = ""; connStrMaster = String.Format(@"Data Source={0};Initial Catalog={1};Persist Security Info=True;User ID={2};Password={3}", ConnErp.Servidor, "master", ConnErp.Usuario, ConnErp.SenhaBD); try { //SqlConnection conexao = new SqlConnection(connStrMaster); if (caso == 1) //1 - Fecha Conexoes / 2 - Retorna para MultUser { consulta = "ALTER DATABASE " + ConnErp.BancoDados.ToUpper() + " SET SINGLE_USER WITH ROLLBACK IMMEDIATE; \n" + "ALTER DATABASE " + ConnErp.BancoDados.ToUpper() + " MODIFY NAME = REBUILDidx; \n" + "ALTER DATABASE REBUILDidx SET MULTI_USER; \n"; } else { consulta = "ALTER DATABASE REBUILDidx SET SINGLE_USER WITH ROLLBACK IMMEDIATE; \n" + "ALTER DATABASE REBUILDidx MODIFY NAME = " + ConnErp.BancoDados.ToUpper() + ";\n" + "ALTER DATABASE " + ConnErp.BancoDados.ToUpper() + " SET MULTI_USER; \n"; } SqlConnection conexao = new SqlConnection(connStrMaster); SqlCommand cmd = new SqlCommand(consulta, conexao); conexao.Open(); cmd.ExecuteNonQuery(); cmd.Dispose(); result = "OK"; conexao.Close(); return(result); } catch (Exception ex) { result = ex.Message; GravaErro(result); return(result); } }
//Retorna os dados da conexão do ERP public ConexaoERP LeConfTXT(string IDConex) { ConexaoERP dadosConn = new ConexaoERP(); string PastaUser = ""; string ArqConexoes = ""; string Valor = ""; var tam = IDConex.Length; if (tam < 3) { if (tam == 2) { IDConex = "0" + IDConex.Trim(); } else if (tam == 1) { IDConex = "00" + IDConex.Trim(); } } PastaUser = Environment.GetEnvironmentVariable("USERPROFILE"); ArqConexoes = PastaUser + @"\Controller\ConexaoAtual-" + IDConex + ".cfg"; try { if (File.Exists(ArqConexoes)) { dadosConn.ConexaoId = Convert.ToInt32(IDConex); Regex regex = new Regex(@"(?<chave>[A-Z|_]*)\:(?<valor>.*)"); var linhas = File.ReadAllLines(ArqConexoes); foreach (var linha in linhas) { GroupCollection groups = regex.Match(linha).Groups; // Console.WriteLine( "Group: {0}, Value: {1}", groupName, groups[groupName].Value); Valor = groups["valor"].Value.ToString(); switch (groups["chave"].Value.ToString()) { case "SERVIDOR": dadosConn.Servidor = Valor; break; case "BANCO": dadosConn.BancoDados = Valor; break; case "USUARIO": dadosConn.Usuario = Valor; break; case "SENHA": dadosConn.SenhaCript = Valor; break; case "KEY": dadosConn.KeyString = Valor; break; case "MIRROR": dadosConn.ServerMirror = Valor; break; case "PASTA_DB": dadosConn.PastaBD = Valor; break; case "PASTA_BKP": dadosConn.PastaBackup = Valor; break; } } } //Tenta Descriptar a Senha - Vou deixar pra depois esse trampo pq pode demorar mto dadosConn.SenhaBD = Crypto.Decrypt64(dadosConn.SenhaCript, dadosConn.KeyString); dadosConn.StringConexao = String.Format(@"Data Source={0};Initial Catalog={1};Persist Security Info=True;User ID={2};Password={3}", dadosConn.Servidor, dadosConn.BancoDados, dadosConn.Usuario, dadosConn.SenhaBD); return(dadosConn); } catch (Exception ex) { return(dadosConn); throw ex; } }