private CNodoAtributo creaNuevoAtri(DCapturaAtributo dlgAtri) { CNodoAtributo nuevo = new CNodoAtributo(); int tam = 0, clave = 0; string ent; if (dlgAtri.clave.Checked == true) clave = 1; nuevo.setClavePrimaria(clave); nuevo.setNombre(dlgAtri.tbName.Text); nuevo.setTipo(dlgAtri.cbTipo.SelectedIndex + 1); switch (nuevo.getTipo()) { case 1://Char tam = 1; break; case 2://short tam = 2; break; case 3://int tam = 4; break; case 4://float tam = 4; break; case 5://long tam = 8; break; case 6://double tam = 8; break; case 7://string tam = Convert.ToInt32(dlgAtri.tbTamaño.Text); break; } nuevo.setTamaño(tam); ent = dlgAtri.cbListEnt.Text; CNodoEntidad aux; for (aux = archivo.getListaEntidad().getCabListEnt(); aux != null && aux.getNombre() != ent; aux = aux.getSigEnt()) ; if (aux != null) { nuevo.setEntRel(aux); nuevo.setApEntRel(aux.getDir()); } return (nuevo); }
/**Crea un nuevo archivo a partir de alguna organiacion de archivos *En el archivo destino, carga todo el diccionario de datos, sin datos*/ public void creaCopia(CArchivo aO, CArchivo aC) { CNodoAtributo auxAtri, nuevo = null; CNodoEntidad auxEnt, auxEntRel; auxEnt = aO.getListaEntidad().getCabListEnt(); //Copiar las entidades while (auxEnt != null) { aC.AltaEntidad(new CNodoEntidad(auxEnt.getNombre())); auxEnt = auxEnt.getSigEnt(); } //Copiar los atributos y sus relaciones de clave foranea auxEnt = aO.getListaEntidad().getCabListEnt(); while (auxEnt != null) { auxAtri = auxEnt.getCabListAtri(); while (auxAtri != null) { nuevo = new CNodoAtributo(); nuevo.setClavePrimaria(auxAtri.getClave()); nuevo.setNombre(auxAtri.getNombre()); nuevo.setTipo(auxAtri.getTipo()); nuevo.setTamaño(auxAtri.getTamaño()); nuevo.setEntRel(null); if (auxAtri.getEntRel() != null) { string entRel = auxAtri.getEntRel().getNombre(); auxEntRel = aC.getListaEntidad().getCabListEnt(); for (; auxEntRel != null; auxEntRel = auxEntRel.getSigEnt()) if (auxEntRel.getNombre().CompareTo(entRel) == 0) break; nuevo.setEntRel(auxEntRel); nuevo.setApEntRel(auxEntRel.getDir()); } aC.AltaAtributo(nuevo, auxEnt.getNombre()); auxAtri = auxAtri.getSigAtri(); } auxEnt = auxEnt.getSigEnt(); } }