public override bool Equals(object obj) { if (obj == null || GetType() != obj.GetType()) { return false; } ForeignKeyHelper fkh = (ForeignKeyHelper)obj; if (this.ExternColumnName != fkh.ExternColumnName || this.ExternTableName != fkh.ExternTableName) return false; return true; }
public ForeignKeyHelper getFKHFromColumn(Column column) { foreach (ForeignKey fk in ForeignKeys) { ForeignKeyHelper tmp = fk.getHelper(column); if (tmp != null) { return(tmp); } } return(null); }
public bool visiteColumn(Column column, Table table, DatabaseXML db) { ForeignKeyHelper fkh = table.getFKHFromColumn(column); if (fkh != null) { Table externTable; try { externTable = db.getTableByName(fkh.ExternTableName); } catch (Exception e) { errors.Add(e.Message + " of the database " + db.Name); return(false); } Column externColumn; try { externColumn = externTable.getColumnByName(fkh.ExternColumnName); } catch (Exception e) { errors.Add(e.Message + " of the database " + db.Name); return(false); } if (column.Type == externColumn.Type && column.Length == externColumn.Length) { return(true); } else { string s = "Un problème de type de champ est apparue dans une clé étrangère entre le champ " + column.Name + " de la table " + table.Name + " et le champ " + externColumn.Name + " de la table " + externTable; errors.Add(s); return(false); } } return(true); }