Ejemplo n.º 1
0
        private void SetForeignKey(MySQLTableSchema oracleTable)
        {
            string         sql    = @"select tc.table_name, tc.constraint_name,kc.column_name,kc.referenced_table_name,kc.referenced_table_schema  
from information_schema.table_constraints tc,information_schema.key_column_usage kc 
where tc.constraint_type='FOREIGN KEY' and tc.constraint_name=kc.constraint_name 
and tc.table_schema=kc.table_schema and tc.table_name=kc.table_name
and tc.table_name=@table_name and tc.table_schema=@table_schema";
            MySqlParameter para0  = new MySqlParameter("@table_name", oracleTable.Name);
            MySqlParameter para1  = new MySqlParameter("@table_schema", this.DatabaseName);
            DbHelper       helper = new DbHelper(this._connectionString);
            var            table  = helper.ListBySql(sql, para0, para1);

            oracleTable.ForiegnKeys = new List <Common.ForeignKey>();
            foreach (DataRow row in table.Rows)
            {
                Common.ForeignKey key = new Common.ForeignKey();
                key.Columns = new ColumnCollection();
                string column_name     = row["COLUMN_NAME"] + string.Empty;
                string constraint_name = row["CONSTRAINT_NAME"] + string.Empty;
                key.ConstraintName = constraint_name;
                key.Columns.Add(oracleTable.Columns.Find(it => it.Name == column_name));
                string foreignTable = row["referenced_table_name"] + string.Empty;
                if (ContainForeignTable && key.ForeignTable == null && !string.IsNullOrEmpty(foreignTable))
                {
                    string referenced_schema = row["referenced_table_schema"] + string.Empty;
                    var    fac = new MySQLDataFactory(this._connectionString);
                    fac.ContainForeignTable = false;
                    fac._db_name            = referenced_schema;
                    key.ForeignTable        = fac.GetTableSchema(foreignTable);
                }
                oracleTable.ForiegnKeys.Add(key);
            }
        }
Ejemplo n.º 2
0
        private void SetForeignKey(MySQLTableSchema oracleTable)
        {
            string sql = @"select tc.table_name, tc.constraint_name,kc.column_name,kc.referenced_table_name,kc.referenced_table_schema  
from information_schema.table_constraints tc,information_schema.key_column_usage kc 
where tc.constraint_type='FOREIGN KEY' and tc.constraint_name=kc.constraint_name 
and tc.table_schema=kc.table_schema and tc.table_name=kc.table_name
and tc.table_name=@table_name and tc.table_schema=@table_schema";

            var table = Db.Ado.GetDataTable(sql, new SugarParameter("@table_name", oracleTable.Name), new SugarParameter("@table_schema", DatabaseName));

            oracleTable.ForiegnKeys = new List <Common.ForeignKey>();
            foreach (DataRow row in table.Rows)
            {
                Common.ForeignKey key = new Common.ForeignKey();
                key.Columns = new List <IColumn>();
                string column_name     = row["COLUMN_NAME"] + string.Empty;
                string constraint_name = row["CONSTRAINT_NAME"] + string.Empty;
                key.ConstraintName = constraint_name;
                key.Columns.Add(oracleTable.Columns.Find(it => it.Name == column_name));
                if (ContainForeignTable && key.ForeignTable == null)
                {
                    string foreignTable      = row["referenced_table_name"] + string.Empty;
                    string referenced_schema = row["referenced_table_schema"] + string.Empty;
                    var    fac = new MySQLDbOperation(this.Db);
                    fac.ContainForeignTable = false;
                    fac._db_name            = referenced_schema;
                    key.ForeignTable        = fac.GetTableSchema(foreignTable);
                }
                oracleTable.ForiegnKeys.Add(key);
            }
        }
Ejemplo n.º 3
0
        private void SetForeignKey(SqlServerTableSchema SqlserverTable)
        {
            if (SqlserverTable == null)
            {
                return;
            }
            if (SqlserverTable.Columns == null || SqlserverTable.Columns.Count <= 0)
            {
                SetColumns(SqlserverTable);
            }
            string sql = @"select obj.name CONSTRAINT_NAME,
main_col.name COLUMN_NAME,
sub.name FOREIGN_TABLE_NAME 
from sysforeignkeys fk left join sys.tables main on fk.fkeyid=main.object_id
left join sys.tables sub on sub.object_id=fk.rkeyid
left join syscolumns main_col on fk.fkey=main_col.colid and fk.fkeyid=main_col.id
left join sysobjects obj on obj.id=fk.constid
where main.name=@TABLE_NAME";

            var table = Db.Ado.GetDataTable(sql, new SugarParameter("TABLE_NAME", SqlserverTable.Name));

            SqlserverTable.ForiegnKeys = new List <Common.ForeignKey>();

            foreach (DataRow row in table.Rows)
            {
                string column_name     = row["COLUMN_NAME"] + string.Empty;
                string constraint_name = row["CONSTRAINT_NAME"] + string.Empty;

                Common.ForeignKey key = new Common.ForeignKey();
                key.Columns        = new List <IColumn>();
                key.ConstraintName = constraint_name;
                if (key.ForeignTable == null && ContainForeignTable)
                {
                    string forignTable = row["FOREIGN_TABLE_NAME"] + string.Empty;

                    var fac = new SqlServerDbOperation(Db);

                    fac.ContainForeignTable = false;
                    key.ForeignTable        = fac.GetTableSchema(forignTable);
                }
                key.Columns.Add(SqlserverTable.Columns.Find(it => it.Name == column_name));
                SqlserverTable.ForiegnKeys.Add(key);
            }
        }
Ejemplo n.º 4
0
        private void SetForeignKey(OracleTableSchema oracleTable)
        {
            if (oracleTable == null)
            {
                return;
            }
            if (oracleTable.Columns == null || oracleTable.Columns.Count <= 0)
            {
                SetColumns(oracleTable);
            }
            string sql = @"SELECT UCC.CONSTRAINT_NAME, UCC.COLUMN_NAME,UC1.TABLE_NAME FOREIGN_TABLE_NAME
  FROM USER_CONSTRAINTS UC
  LEFT JOIN USER_CONS_COLUMNS UCC
    ON UC.CONSTRAINT_NAME = UCC.CONSTRAINT_NAME
  LEFT JOIN USER_CONSTRAINTS UC1 ON UC.R_CONSTRAINT_NAME=UC1.CONSTRAINT_NAME
 WHERE UC.CONSTRAINT_TYPE = 'R'
   AND UC.TABLE_NAME =:TABLE_NAME";



            var table = Db.Ado.GetDataTable(sql, new SugarParameter("TABLE_NAME", oracleTable.Name));

            oracleTable.ForiegnKeys = new List <Common.ForeignKey>();

            foreach (DataRow row in table.Rows)
            {
                string column_name     = row["COLUMN_NAME"] + string.Empty;
                string constraint_name = row["CONSTRAINT_NAME"] + string.Empty;

                Common.ForeignKey key = new Common.ForeignKey();
                key.Columns        = new List <IColumn>();
                key.ConstraintName = constraint_name;
                if (key.ForeignTable == null && ContainForeignTable)
                {
                    string forignTable = row["FOREIGN_TABLE_NAME"] + string.Empty;
                    var    fac         = new OracleDbOperation(this.Db);
                    fac.ContainForeignTable = false;
                    key.ForeignTable        = fac.GetTableSchema(forignTable);
                }
                key.Columns.Add(oracleTable.Columns.Find(it => it.Name == column_name));
                oracleTable.ForiegnKeys.Add(key);
            }
        }
Ejemplo n.º 5
0
        private void SetForeignKey(SqlServerTableSchema oracleTable)
        {
            if (oracleTable == null)
            {
                return;
            }
            if (oracleTable.Columns == null || oracleTable.Columns.Count <= 0)
            {
                SetColumns(oracleTable);
            }
            string   sql    = @"select obj.name CONSTRAINT_NAME,
main_col.name COLUMN_NAME,
sub.name FOREIGN_TABLE_NAME 
from sysforeignkeys fk left join sys.tables main on fk.fkeyid=main.object_id
left join sys.tables sub on sub.object_id=fk.rkeyid
left join syscolumns main_col on fk.fkey=main_col.colid and fk.fkeyid=main_col.id
left join sysobjects obj on obj.id=fk.constid
where main.name=@TABLE_NAME";
            var      para   = new SqlParameter("@TABLE_NAME", oracleTable.Name.ToUpper());
            DbHelper helper = new DbHelper(this._connectionString);
            var      table  = helper.ListBySql(sql, para);

            oracleTable.ForiegnKeys = new List <Common.ForeignKey>();

            foreach (DataRow row in table.Rows)
            {
                string column_name     = row["COLUMN_NAME"] + string.Empty;
                string constraint_name = row["CONSTRAINT_NAME"] + string.Empty;

                Common.ForeignKey key = new Common.ForeignKey();
                key.Columns        = new ColumnCollection();
                key.ConstraintName = constraint_name;
                if (key.ForeignTable == null && ContainForeignTable)
                {
                    string forignTable = row["FOREIGN_TABLE_NAME"] + string.Empty;
                    var    fac         = new SqlServerDataFactory(this._connectionString);
                    fac.ContainForeignTable = false;
                    key.ForeignTable        = fac.GetTableSchema(forignTable);
                }
                key.Columns.Add(oracleTable.Columns.Find(it => it.Name == column_name));
                oracleTable.ForiegnKeys.Add(key);
            }
        }
Ejemplo n.º 6
0
        private void SetForeignKey(OracleTableSchema oracleTable)
        {
            if (oracleTable == null)
            {
                return;
            }
            if (oracleTable.Columns == null || oracleTable.Columns.Count <= 0)
            {
                SetColumns(oracleTable);
            }
            string          sql    = @"SELECT UCC.CONSTRAINT_NAME, UCC.COLUMN_NAME,UC1.TABLE_NAME FOREIGN_TABLE_NAME
  FROM USER_CONSTRAINTS UC
  LEFT JOIN USER_CONS_COLUMNS UCC
    ON UC.CONSTRAINT_NAME = UCC.CONSTRAINT_NAME
  LEFT JOIN USER_CONSTRAINTS UC1 ON UC.R_CONSTRAINT_NAME=UC1.CONSTRAINT_NAME
 WHERE UC.CONSTRAINT_TYPE = 'R'
   AND UC.TABLE_NAME =:TABLE_NAME";
            OracleParameter para   = new OracleParameter("TABLE_NAME", oracleTable.Name.ToUpper());
            DbHelper        helper = new DbHelper(this._connectionString);
            var             table  = helper.ListBySql(sql, para);

            oracleTable.ForiegnKeys = new List <Common.ForeignKey>();

            foreach (DataRow row in table.Rows)
            {
                string column_name     = row["COLUMN_NAME"] + string.Empty;
                string constraint_name = row["CONSTRAINT_NAME"] + string.Empty;

                Common.ForeignKey key = new Common.ForeignKey();
                key.Columns        = new ColumnCollection();
                key.ConstraintName = constraint_name;
                if (key.ForeignTable == null && ContainForeignTable)
                {
                    string forignTable = row["FOREIGN_TABLE_NAME"] + string.Empty;
                    var    fac         = new OracleDataFactory(this._connectionString);
                    fac.ContainForeignTable = false;
                    key.ForeignTable        = fac.GetTableSchema(forignTable);
                }
                key.Columns.Add(oracleTable.Columns.Find(it => it.Name == column_name));
                oracleTable.ForiegnKeys.Add(key);
            }
        }