コード例 #1
0
        /// <summary>
        /// Métodos que retorna os relacionamentos
        /// </summary>
        /// <param name="tabelas"></param>
        /// <param name="relacionamentos"></param>
        public static void RetornaDetalhesRelacionamentos(Visao.BarraDeCarregamento barra, List <DAO.MDN_Table> tabelas, ref List <Model.Relacionamento> relacionamentos)
        {
            foreach (DAO.MDN_Table table in tabelas)
            {
                string sentenca = " pragma foreign_key_list(" + table.Table_Name + ")";

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

                while (reader.Read())
                {
                    barra.AvancaBarra(1);

                    string constraintName = string.Empty;
                    string tabelaOrigem   = table.Table_Name;
                    string tabelaDestino  = reader["table"].ToString().ToUpper();
                    string campoOrigem    = reader["from"].ToString();
                    string campoDestino   = reader["to"].ToString();


                    Model.Relacionamento r = new Model.Relacionamento();
                    r.constraintName = constraintName;
                    r.tabelaDestino  = tabelaDestino;
                    r.tabelaOrigem   = tabelaOrigem;
                    r.campoDestino   = campoDestino;
                    r.campoOrigem    = campoOrigem;

                    relacionamentos.Add(r);
                }
                reader.Close();
            }
        }
コード例 #2
0
        /// <summary>
        /// Método que retorna os detalhes de todos os relacionamentos
        /// </summary>
        /// <param name="barra"></param>
        /// <param name="relacionamentos"></param>
        public static void RetornaDetalhesRelacionamentos(Visao.BarraDeCarregamento barra, ref List <Model.Relacionamento> relacionamentos)
        {
            string sentenca = @" SELECT
                                     f.name constraint_name
                                    ,OBJECT_NAME(f.parent_object_id) referencing_table_name
                                    ,COL_NAME(fc.parent_object_id, fc.parent_column_id) referencing_column_name
                                    ,OBJECT_NAME (f.referenced_object_id) referenced_table_name
                                    ,COL_NAME(fc.referenced_object_id, fc.referenced_column_id) referenced_column_name
                                 FROM sys.foreign_keys AS f
                                 INNER JOIN sys.foreign_key_columns AS fc
                                    ON f.object_id = fc.constraint_object_id
                                 ORDER BY f.name";

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

            while (reader.Read())
            {
                barra.AvancaBarra(1);

                string constraintName = reader["constraint_name"].ToString();
                string tabelaOrigem   = reader["referencing_table_name"].ToString();
                string tabelaDestino  = reader["referenced_table_name"].ToString().ToUpper();
                string campoOrigem    = reader["referencing_column_name"].ToString();
                string campoDestino   = reader["referenced_column_name"].ToString();


                Model.Relacionamento r = new Model.Relacionamento();
                r.constraintName = constraintName;
                r.tabelaDestino  = tabelaDestino;
                r.tabelaOrigem   = tabelaOrigem;
                r.campoDestino   = campoDestino;
                r.campoOrigem    = campoOrigem;

                relacionamentos.Add(r);
            }
            reader.Close();
        }