Ejemplo n.º 1
0
        /// <summary>
        /// Método que processa as tabelas
        /// </summary>
        /// <param name="tables">tabelas de importação</param>
        /// <param name="projeto">projeto para importação</param>
        private static void ResultadoTabelas(List <MDN_Table> tables, Model.MD_Projeto projeto)
        {
            Util.CL_Files.WriteOnTheLog("Backup.ResultadoTabelas()", Util.Global.TipoLog.DETALHADO);

            foreach (MDN_Table table in tables)
            {
                Tabela tabela = new Tabela();
                tabela.nome = table.Table_Name;
                bool existe = false;

                int             codigo       = Importador.CodigoTabela(tabela, projeto.DAO.Codigo, ref existe);
                Model.MD_Tabela tabelaImport = new Model.MD_Tabela(codigo, projeto.DAO.Codigo);
                tabelaImport.DAO.Nome = tabela.nome;

                if (!existe)
                {
                    tabelaImport.DAO.Insert();
                }
                else
                {
                    tabelaImport.DAO.Update();
                }

                foreach (MDN_Campo campo in table.Fields_Table)
                {
                    Model.Campo field = new Campo();
                    field.Name_Field   = campo.Name_Field;
                    field.NotNull      = campo.NotNull;
                    field.Precision    = campo.Precision;
                    field.PrimaryKey   = campo.PrimaryKey;
                    field.Size         = campo.Size;
                    field.Tabela       = tabela.nome;
                    field.Type         = campo.Type.ToString();
                    field.Unique       = campo.Unique;
                    field.ValueDefault = campo.ValueDefault.ToString();

                    int             codigoCampo   = Importador.CodigoColuna(field, projeto.DAO.Codigo, ref existe);
                    Model.MD_Campos campoImportar = new Model.MD_Campos(codigoCampo, tabelaImport.DAO.Codigo, tabelaImport.DAO.Projeto.Codigo);
                    campoImportar.DAO.Nome       = field.Name_Field;
                    campoImportar.DAO.Default    = field.ValueDefault;
                    campoImportar.DAO.NotNull    = field.NotNull;
                    campoImportar.DAO.Precisao   = field.Precision;
                    campoImportar.DAO.PrimaryKey = field.PrimaryKey;
                    campoImportar.DAO.Projeto    = projeto.DAO;
                    campoImportar.DAO.Tamanho    = field.Size;
                    campoImportar.DAO.TipoCampo  = Model.MD_TipoCampo.RetornaTipoCampo(field.Type).DAO;
                    campoImportar.DAO.Unique     = field.Unique;

                    if (!existe)
                    {
                        campoImportar.DAO.Insert();
                    }
                    else
                    {
                        campoImportar.DAO.Update();
                    }
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Método que monta as relações da tabela
        /// </summary>
        /// <param name="tabela">Tabela para filtar as colunas</param>
        /// <param name="builder">Builder para montar o HTML</param>
        private static void PreencheRelationships(Model.MD_Tabela tabela, ref StringBuilder builder)
        {
            Util.CL_Files.WriteOnTheLog("Document.PreencheRelationships()", Util.Global.TipoLog.DETALHADO);

            builder.Append("<table class=\"tabformat\" border=\"0\" cellpadding=\"2\" cellspacing=\"1\" width=\"100%\">" + Environment.NewLine);
            builder.Append("" + Environment.NewLine);
            builder.Append("<tr>" + Environment.NewLine);

            builder.Append("<td class=\"tabhead\" > Constraint (relationship) name    </td>" + Environment.NewLine);
            builder.Append("<td class=\"tabhead\" > Relationship type    </td>" + Environment.NewLine);
            builder.Append("<td class=\"tabhead\" > Parent table    </td>" + Environment.NewLine);
            builder.Append("<td class=\"tabhead\" > Child table    </td>" + Environment.NewLine);
            builder.Append("<td class=\"tabhead\" > Card.    </td>" + Environment.NewLine);

            builder.Append("</tr>" + Environment.NewLine);

            string       sentenca = ClassesGenericas.relacaoBase.DAO.table.CreateCommandSQLTable() + " WHERE TABELAORIGEM = " + tabela.DAO.Codigo + " OR TABELADESTINO = " + tabela.DAO.Codigo + " ORDER BY FOREINGKEY";
            DbDataReader reader   = DataBase.Connection.Select(sentenca);

            while (reader.Read())
            {
                int             codigo        = int.Parse(reader["CODIGO"].ToString());
                Model.MD_Tabela tabelaOrigem  = new Model.MD_Tabela(int.Parse(reader["TABELAORIGEM"].ToString()), tabela.DAO.Projeto.Codigo);
                Model.MD_Tabela tabelaDestino = new Model.MD_Tabela(int.Parse(reader["TABELADESTINO"].ToString()), tabela.DAO.Projeto.Codigo);
                Model.MD_Campos campoOrigem   = new MD_Campos(int.Parse(reader["CAMPOORIGEM"].ToString()), tabelaOrigem.DAO.Codigo, tabelaOrigem.DAO.Projeto.Codigo);
                Model.MD_Campos campoDestino  = new MD_Campos(int.Parse(reader["CAMPODESTINO"].ToString()), tabelaDestino.DAO.Codigo, tabelaDestino.DAO.Projeto.Codigo);

                Model.MD_Relacao relacao = new MD_Relacao(codigo, tabela.DAO.Projeto, tabelaOrigem.DAO, tabelaDestino.DAO, campoOrigem.DAO, campoDestino.DAO);

                string relationship = relacao.DAO.TabelaOrigem.Descricao + " x " + relacao.DAO.TabelaDestino.Descricao + "(" + relacao.DAO.TabelaOrigem.Nome + " x " + relacao.DAO.TabelaDestino.Nome + ")";
                string card         = relacao.DAO.CardinalidadeOrigem + ":" + relacao.DAO.CardinalidadeDestino;
                string parentTable  = relacao.DAO.TabelaOrigem.Nome;
                string childTable   = relacao.DAO.TabelaDestino.Nome;

                builder.Append("<tr>" + Environment.NewLine);
                builder.Append("    <td class=\"tabdata\" > " + relationship + "   </td>" + Environment.NewLine);
                builder.Append("    <td class=\"tabdata\" > Identifying   </td>" + Environment.NewLine);
                builder.Append("    <td class=\"tabdata\" > " + parentTable + "  </td>" + Environment.NewLine);
                builder.Append("    <td class=\"tabdata\" > " + childTable + "   </td>" + Environment.NewLine);
                builder.Append("    <td class=\"tabdata\" > " + card + "  </td>" + Environment.NewLine);
                builder.Append("</tr>" + Environment.NewLine);

                tabelaOrigem  = null;
                tabelaDestino = null;
                campoOrigem   = null;
                campoDestino  = null;
                relacao       = null;
            }

            reader.Close();
            reader = null;

            builder.Append("" + Environment.NewLine);
            builder.Append("</table>" + Environment.NewLine);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Método que preenche o comments da tabela
        /// </summary>
        /// <param name="tabela">Tabela para filtar as colunas</param>
        /// <param name="builder">Builder para montar o HTML</param>
        private static void PreencheNotes(Model.MD_Tabela tabela, ref StringBuilder builder)
        {
            Util.CL_Files.WriteOnTheLog("Document.PreencheNotes()", Util.Global.TipoLog.DETALHADO);

            builder.Append("<table class=\"tabformat\" border=\"0\" cellpadding=\"2\" cellspacing=\"1\" width=\"100%\">" + Environment.NewLine);
            builder.Append("<tr>" + Environment.NewLine);
            builder.Append("<td class=\"tabdata\" >" + tabela.DAO.Descricao);
            builder.Append("</td>" + Environment.NewLine);
            builder.Append("</tr>" + Environment.NewLine);
            builder.Append("<tr>" + Environment.NewLine);
            builder.Append("<td class=\"tabdata\" >" + tabela.DAO.Descricao);
            builder.Append("</td>" + Environment.NewLine);
            builder.Append("</tr>" + Environment.NewLine);
            builder.Append("</table>" + Environment.NewLine);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Método que retorna as tabelas do projeto
        /// </summary>
        /// <returns>Lista com todas as tabelas associadas com o projeto</returns>
        public List <MD_Tabela> GetTabelasProjeto()
        {
            Util.CL_Files.WriteOnTheLog("MD_Projeto.GetTabelasProjeto()", Util.Global.TipoLog.DETALHADO);

            List <MD_Tabela> tabelas  = new List <MD_Tabela>();
            string           sentenca = "SELECT CODIGO FROM " + new DAO.MD_Tabela().table.Table_Name + " WHERE PROJETO = " + this.DAO.Codigo;

            DbDataReader reader = DataBase.Connection.Select(sentenca);

            while (reader.Read())
            {
                MD_Tabela table = new MD_Tabela(int.Parse(reader["CODIGO"].ToString()), this.DAO.Codigo);
                tabelas.Add(table);
                table = null;
            }
            reader.Close();

            return(tabelas);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Método que preenche as colunas
        /// </summary>
        /// <param name="tabela">Tabela para filtar as colunas</param>
        /// <param name="builder">Builder para montar o HTML</param>
        private static void PreencheColunas(Model.MD_Tabela tabela, ref StringBuilder builder)
        {
            Util.CL_Files.WriteOnTheLog("Document.PreencheColunas()", Util.Global.TipoLog.DETALHADO);

            builder.Append("<table class=\"tabformat\" border=\"0\" cellpadding=\"2\" cellspacing=\"1\" width=\"100%\">" + Environment.NewLine);
            builder.Append("" + Environment.NewLine);
            builder.Append("<tr>" + Environment.NewLine);

            builder.Append("    <td class=\"tabhead\" > Key    </td>" + Environment.NewLine);
            builder.Append("    <td class=\"tabhead\" > Column name    </td>" + Environment.NewLine);
            builder.Append("    <td class=\"tabhead\" > Domain    </td>" + Environment.NewLine);
            builder.Append("    <td class=\"tabhead\" > Data type    </td>" + Environment.NewLine);
            builder.Append("    <td class=\"tabhead\" > Not null    </td>" + Environment.NewLine);
            builder.Append("    <td class=\"tabhead\" > Unique    </td>" + Environment.NewLine);
            builder.Append("    <td class=\"tabhead\" > Check    </td>" + Environment.NewLine);
            builder.Append("    <td class=\"tabhead\" > Default    </td>" + Environment.NewLine);
            builder.Append("    <td class=\"tabhead\"  colspan=\"2\"> Comments    </td>  " + Environment.NewLine);

            builder.Append("</tr>" + Environment.NewLine);

            string sentenca = ClassesGenericas.camposBase.DAO.table.CreateCommandSQLTable() + " WHERE CODIGOTABELA = " + tabela.DAO.Codigo + " ORDER BY CHAVE DESC,  NOME ";

            DbDataReader reader = DataBase.Connection.Select(sentenca);

            while (reader.Read())
            {
                Model.MD_Campos campo = new MD_Campos(int.Parse(reader["CODIGO"].ToString()), tabela.DAO.Codigo, tabela.DAO.Projeto.Codigo);

                string pfk     = (campo.DAO.PrimaryKey ? (campo.DAO.ForeingKey ? "PFK" : "PK") : (campo.DAO.ForeingKey ? "FK" : string.Empty));
                string nome    = campo.DAO.Nome;
                string dominio = campo.DAO.Dominio;
                string tipo    = campo.DAO.TipoCampo.Nome;

                if (campo.DAO.TipoCampo.Nome.ToUpper().Equals("VARCHAR") || campo.DAO.TipoCampo.Nome.ToUpper().Equals("CHAR"))
                {
                    tipo += "(" + campo.DAO.Tamanho + ")";
                }
                else if (campo.DAO.TipoCampo.Nome.ToUpper().Equals("DECIMAL") || campo.DAO.TipoCampo.Nome.ToUpper().Equals("FLOAT"))
                {
                    tipo += "(" + campo.DAO.Precisao.ToString().Replace(".", ",") + ")";
                }

                string notnull  = campo.DAO.NotNull ? "YES" : "NO";
                string unique   = campo.DAO.Unique ? "YES" : "NO";
                string check    = campo.DAO.Check;
                string _default = campo.DAO.Default == null ? string.Empty : campo.DAO.Default.ToString();
                string comments = campo.DAO.Comentario;

                campo = null;

                builder.Append("<tr>" + Environment.NewLine);

                builder.Append("  <td class=\"tabdata\" > " + pfk + " </td>" + Environment.NewLine);
                builder.Append("  <td class=\"tabdata\" > " + nome + " </td>" + Environment.NewLine);
                builder.Append("  <td class=\"tabdata\" > " + dominio + "  </td>" + Environment.NewLine);
                builder.Append("  <td class=\"tabdata\" > " + tipo + "  </td>" + Environment.NewLine);
                builder.Append("  <td class=\"tabdata\" > " + notnull + "   </td>" + Environment.NewLine);
                builder.Append("  <td class=\"tabdata\" > " + unique + "  </td>" + Environment.NewLine);
                builder.Append("  <td class=\"tabdata\" > " + check + "   </td>" + Environment.NewLine);
                builder.Append("  <td class=\"tabdata\" > " + _default + "   </td>" + Environment.NewLine);
                builder.Append("  <td class=\"tabdata\"  colspan=\"2\"> " + comments + " </ td > " + Environment.NewLine);

                builder.Append("</tr>" + Environment.NewLine);
            }

            reader.Close();
            reader = null;

            builder.Append("" + Environment.NewLine);
            builder.Append("</table>" + Environment.NewLine);
        }