示例#1
0
        private void bt_nuevoAtrib_Click(object sender, EventArgs e)
        {
            String nameAuxiliar = tb_nombreAtrib.Text;
            String name         = nameAuxiliar.ToLower();
            int    nTab         = 0;

            for (int j = 0; j < entidadT.Count; j++)
            {
                if (entidadActual == entidadT[j].NombreEnt.Replace("\0", " ").Replace(" ", ""))
                {
                    nTab = j;
                    j    = entidadT.Count + 1;
                }
            }
            if (!entidadT[nTab].Datos)
            {
                if (!entidadT[nTab].Primaria || Cb_Index.Text == "0(Sin_tipo)" || Cb_Index.Text == "1(Clave_de_busqueda)" || Cb_Index.Text == "3(Indice_secundario)")
                {
                    if (!entidadT[nTab].Cve_busqueda || Cb_Index.Text == "0(Sin_tipo)" || Cb_Index.Text == "2(Indice_primario)" || Cb_Index.Text == "3(Indice_secundario)")
                    {
                        if (!entidadT[nTab].Secundaria || Cb_Index.Text == "0(Sin_tipo)" || Cb_Index.Text == "2(Indice_primario)" || Cb_Index.Text == "1(Clave_de_busqueda)")
                        {
                            if (flagSelE == true)
                            {
                                if (comparaNombre(name) == true)
                                {
                                    string tipoS    = Cb_Dato.Text;
                                    string tipo     = Cb_Index.Text;
                                    int    atlong   = 0;
                                    int    atIndice = 0;
                                    switch (Cb_Index.Text)
                                    {
                                    case "0(Sin_tipo)":
                                        atIndice = 0;
                                        break;

                                    case "1(Clave_de_busqueda)":
                                        atIndice = 1;
                                        entidadT[nTab].Cve_busqueda = true;
                                        break;

                                    case "2(Indice_primario)":
                                        atIndice = 2;
                                        entidadT[nTab].Primaria = true;
                                        break;

                                    case "3(Indice_secundario)":
                                        entidadT[nTab].Secundaria = true;
                                        atIndice = 3;
                                        break;

                                    case "4(Arbol_primario)":
                                        atIndice = 4;
                                        break;

                                    case "5(Arbol_secundario)":
                                        atIndice = 5;
                                        break;
                                    }


                                    char tipoo = ' ';

                                    switch (Cb_Dato.Text)
                                    {
                                    case "Entero":
                                        tipoo  = 'e';
                                        atlong = 4;
                                        break;

                                    case "Cadena":
                                        tipoo  = 'c';
                                        atlong = Convert.ToInt32(tb_Long.Text);
                                        break;
                                    }
                                    atributosL.Add(name);
                                    Atributo auxAt = new Atributo(name, tipoo, atlong, atIndice, Convert.ToInt32(ArchivoBin.dir), -1, -1);
                                    //dataGridView1.Rows.Add(auxAt.IdHex, name, tipoo, atlong, ArchivoBin.dir, atIndice, -1, -1);
                                    if (atIndice == 2)
                                    {
                                        String creaDatos = carpeta + @"\" + auxAt.IdHex + ".idx";
                                        if (File.Exists(@creaDatos))
                                        {
                                            MessageBox.Show("La Entidad existe");
                                        }
                                        else
                                        {
                                            using (FileStream archivo = new FileStream(creaDatos, FileMode.Create))
                                            {
                                                archivo.Close();
                                            }
                                        }
                                    }

                                    if (atributosL.Count > 1)
                                    {
                                        atActual.DirSigAt = ArchivoBin.dir;
                                        archBB.escribeAtributo(atActual.DirAt, atActual);
                                    }
                                    else
                                    {
                                        entidadT[nTab].DirPriAt = ArchivoBin.dir;
                                        archBB.escribeEntidad(entidadT[nTab].DirEnt, entidadT[nTab]);
                                    }
                                    atActual = auxAt;
                                    archBB.escribeAtributo(atActual.DirAt, atActual);
                                    atribT.Add(atActual);
                                    ArchivoBin.dir += 73;
                                    actualizaTablas();
                                    comboBox1.Items.Add(atActual.NombreAt);
                                    tb_nombreAtrib.Clear();
                                    tb_Long.Clear();
                                    Cb_Dato.Text  = "";
                                    Cb_Index.Text = "";
                                }

                                else
                                {
                                    MessageBox.Show("El atributo ya existe");
                                }
                            }

                            else
                            {
                                MessageBox.Show("No se ha seleccionado Entidad");
                            }
                        }
                        else
                        {
                            MessageBox.Show("Ya tiene un indice secundario");
                        }
                    }
                    else
                    {
                        MessageBox.Show("Ya tiene una Clave de busqueda");
                    }
                }
                else
                {
                    MessageBox.Show("Ya tiene un indice primario");
                }
            }
            else
            {
                MessageBox.Show("No se pueden crear mas atributos ya existen datos");
            }
        }
示例#2
0
        private void bt_nuevoDato_Click(object sender, EventArgs e)
        {
            generaLista();
            if (borrarDat())
            {
                File.Delete(archDat.NombreArch);
                using (FileStream archivo = new FileStream(archDat.NombreArch, FileMode.Create))
                {
                    archivo.Close();
                }
                if (idxP)
                {
                    File.Delete(archIdxP.NombreArch);
                    using (FileStream archivo = new FileStream(archIdxP.NombreArch, FileMode.Create))
                    {
                        archivo.Close();
                    }
                }

                if (idxS)
                {
                    File.Delete(archidxS.nombreArch);
                    using (FileStream archivo = new FileStream(archidxS.nombreArch, FileMode.Create))
                    {
                        archivo.Close();
                    }
                }
                if (arbolpri)
                {
                    File.Delete(ArbolPri.nombreArch);
                    using (FileStream archivo = new FileStream(ArbolPri.nombreArch, FileMode.Create))
                    {
                        archivo.Close();
                    }
                }
                if (arbolS)
                {
                    File.Delete(ArbolSec.nombreArch);
                    using (FileStream archivo = new FileStream(ArbolSec.nombreArch, FileMode.Create))
                    {
                        archivo.Close();
                    }
                }
                entidades[sele].DirDatos = archivoDatos.dir;
            }
            if (idxP)
            {
                if (archIdxP.existe(datosAux[campoidx]))
                {
                    MessageBox.Show("Ya existe el indice primario");
                    return;
                }
            }
            archDat.escribeDato(archivoDatos.dir, datosAux);
            todosDatos.Add(datosAux);
            ordena();
            buscaAux();
            if (idxP)
            {
                insertaidxP(datosAux[campoidx], datosAux[0]);
                actualizaDataidxp();
                atributos[campoidx - 1].DirIndice = 0;
                dic.escribeAtributo(atributos[campoidx - 1].DirAt, atributos[campoidx - 1]);
            }
            if (idxS)
            {
                archidxS.insertaEnBP(datosAux[campoidxS], datosAux[0]);
                archidxS.escribeBP();
                archidxS.escribeSC();
                actualizaDataidxs();

                dic.escribeAtributo(atributos[campoidxS - 1].DirAt, atributos[campoidxS - 1]);
            }
            if (arbolpri)
            {
                ArbolPri.inserta(datosAux[campoArbPri], Convert.ToInt64(datosAux[0]));
                escribeArbolPrim();
                atributos[campoArbPri - 1].DirIndice = ArbolPri.raiz;
                dic.escribeAtributo(atributos[campoArbPri - 1].DirAt, atributos[campoArbPri - 1]);
                ArbolPri.escribetodo();
            }
            if (arbolS)
            {
                ArbolSec.inserta(datosAux[campoArbolS], Convert.ToInt64(datosAux[0]));
                escribeArbolS();
                atributos[campoArbolS - 1].DirIndice = ArbolSec.raiz;
                dic.escribeAtributo(atributos[campoArbolS - 1].DirAt, atributos[campoArbolS - 1]);
                ArbolSec.escribetodo();
            }
            dic.escribeEntidad(entidades[sele].DirEnt, entidades[sele]);
            llenaDgvEst();
        }