示例#1
0
        private string ObterConteudoArquivoExecucao(string nomeProcedure)
        {
            StringBuilder       conteudo    = new StringBuilder();
            Informacoes         informacoes = new Informacoes(ObterConexao());
            InformacaoProcedure procedure   = informacoes.ObterDadosProcedure(nomeProcedure);

            if (procedure == null || string.IsNullOrWhiteSpace(procedure.NomeProcedure))
            {
                throw new Exception($"Procedure {nomeProcedure} não encontrada.");
            }

            conteudo.AppendLine($"USE {txtBaseDados.Text.Trim()}");
            conteudo.AppendLine("GO");
            conteudo.AppendLine("BEGIN TRAN");
            conteudo.AppendLine("");
            conteudo.AppendLine("   SET STATISTICS IO ON;");
            conteudo.AppendLine("");
            conteudo.AppendLine($"   EXEC {procedure.Schema}.{procedure.NomeProcedure}");

            int quantidadeParametros = procedure.Parametros.Count;
            int contadorParametros   = 1;

            foreach (var parametro in procedure.Parametros)
            {
                conteudo.AppendLine($"      {parametro.NomeParametro} = '{ObterParametroDefault(parametro.NomeParametro, parametro.Tipo)}'{(contadorParametros < quantidadeParametros ? "," : "")}");
                contadorParametros += 1;
            }
            conteudo.AppendLine("");
            conteudo.AppendLine("   SET STATISTICS IO OFF;");
            conteudo.AppendLine("");
            conteudo.AppendLine("ROLLBACK TRAN");
            conteudo.AppendLine("GO");

            return(conteudo.ToString());
        }