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);
        }
Beispiel #2
0
        /**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();
            }
        }