private void Aceptar_Click(object sender, EventArgs e) { try { this.DialogResult = DialogResult.OK; if (entidad.Atributos[indice].Tipo.Equals('E')) { atributos.Push(Int32.Parse(textBoxDato.Text).ToString()); } else if (entidad.Atributos[indice].Tipo.Equals('D')) { atributos.Push(float.Parse(textBoxDato.Text).ToString()); } else if (entidad.Atributos[indice].Tipo.Equals('C')) { atributos.Push(MetodosAuxiliares.ajustaCadena(textBoxDato.Text, entidad.Atributos[indice].Longitud)); } this.Close(); } catch (FormatException) { MessageBox.Show("Este atributo es de tipo entero ponga un entero", "Error"); textBoxDato.Text = ""; } }
private void DataGridSecundario_CellContentClick(object sender, DataGridViewCellEventArgs e) { int i; string valor; valor = ""; Entidad entidad; Atributo atributo; Indice indice; DataGridViewCell cell; cell = dataGridSecundario.Rows[e.RowIndex].Cells[0]; entidad = this.archivo.buscaEntidad(MetodosAuxiliares.ajustaCadena(this.comboBoxEntidad.Text, Constantes.tam)); atributo = entidad.buscaAtributo(MetodosAuxiliares.ajustaCadena(this.comboBoxAtributosSecundarios.Text, Constantes.tam)); this.dataGridSecundarioAuxiliar.Rows.Clear(); if (atributo.Tipo.Equals('C')) { valor = MetodosAuxiliares.ajustaCadena(cell.Value.ToString(), atributo.Longitud); } else { valor = cell.Value.ToString(); } indice = atributo.Indices.First(); i = ((Secundario)indice).indiceLlave(valor); for (int j = 0; j < Constantes.tamNodoAux; j++) { if (((Secundario)indice).Apuntadores[i, j] != -1) { this.dataGridSecundarioAuxiliar.Rows.Add(((Secundario)indice).Apuntadores[i, j]); } } }
private void Consulta_Click(object sender, EventArgs e) { this.listBoxAtributos.Items.Clear(); if (!string.IsNullOrEmpty(this.comboBoxEntidades.Text)) { Registro registro; string llave; llave = this.comboBoxEntidades.Text; if (this.band) { llave = MetodosAuxiliares.ajustaCadena(llave, this.tam); } registro = this.entidad.Registros[llave]; if (registro != null) { this.textBoxDirAct.Text = registro.DirAct.ToString(); this.textBoxDirSig.Text = registro.DirSig.ToString(); foreach (string dato in registro.Datos) { this.listBoxAtributos.Items.Add(MetodosAuxiliares.truncaCadena(dato)); } } } else { MessageBox.Show("Por favor seleccione una entidad", "Error"); } }
private void Consulta_Click(object sender, EventArgs e) { if (!string.IsNullOrEmpty(comboBoxEntidades.Text)) { string aux = MetodosAuxiliares.ajustaCadena(comboBoxEntidades.Text, Constantes.tam); foreach (Entidad entidad in this.archivo.Entidades) { if (aux.Equals(entidad.Nombre)) { textBoxDirAct.Text = entidad.DirActual.ToString(); textBoxDirAtrib.Text = entidad.DirAtributos.ToString(); textBoxDirReg.Text = entidad.DirRegistros.ToString(); textBoxDirSig.Text = entidad.DirSig.ToString(); listBoxAtributos.Items.Clear(); foreach (Atributo atributo in entidad.Atributos) { listBoxAtributos.Items.Add(MetodosAuxiliares.truncaCadena(atributo.Nombre)); } } } } else { MessageBox.Show("Por favor seleccione una entidad"); } }
private void grabaIndicePrimario(Primario indice, string directorio) { try { using (writer = new BinaryWriter(new FileStream(directorio, FileMode.Open))) //Abre el archivo con el BinaryWriter { this.writer.Seek((int)indice.DirAct, SeekOrigin.Current); //Posiciona el grabado del archivo en la dirección actual for (int i = 0; i < indice.Idx.Length; i++) { if (this.tipo == 'C') { if (indice.Idx[i].Llave.Length != this.longitud) { indice.Idx[i].Llave = MetodosAuxiliares.ajustaCadena(indice.Idx[i].Llave, this.longitud); } this.writer.Write(indice.Idx[i].Llave.ToCharArray()); } else if (this.tipo == 'E') { this.writer.Write(Int32.Parse(indice.Idx[i].Llave)); } this.writer.Write(indice.Idx[i].Direccion); } this.writer.Write(indice.DirSig); } } catch (Exception e) { MessageBox.Show(e.Message); } }
public int baja(string llave, long direccion, bool esCadena, int longitud) { int i; int j; i = -1; j = -1; if (this.existeLlave(llave)) { i = this.indiceLlave(llave); j = this.espacioDireccion(i, direccion); if (j != -1) { this.apuntadores[i, j] = -1; if (this.estaVacio(i)) { if (esCadena) { this.llaves[i] = MetodosAuxiliares.ajustaCadena("-1", longitud); } else { this.llaves[i] = "-1"; } } } } return(i); }
private void Siguiente_Click(object sender, EventArgs e) { try { if (!string.IsNullOrEmpty(textBoxDato.Text)) { if (entidad.Atributos[indice].Tipo.Equals('E')) { Int32.Parse(textBoxDato.Text); atributos.Push(textBoxDato.Text); } if (entidad.Atributos[indice].Tipo.Equals('D')) { float.Parse(textBoxDato.Text); atributos.Push(textBoxDato.Text); } else if (entidad.Atributos[indice].Tipo.Equals('C')) { atributos.Push(MetodosAuxiliares.ajustaCadena(textBoxDato.Text, entidad.Atributos[indice].Longitud)); } indice++; actualizaLabel(); textBoxDato.Text = ""; } else { MessageBox.Show("No puede hacer campos vacios", "Error"); } } catch (FormatException) { MessageBox.Show("Este atributo es de tipo entero ponga un entero", "Error"); textBoxDato.Text = ""; } }
public Registro buscaRegistro(string llavePrimaria) { if (this.atributos[this.buscaIndiceClavePrimaria()].Tipo.Equals('C')) { llavePrimaria = MetodosAuxiliares.ajustaCadena(llavePrimaria, this.atributos[this.buscaIndiceClavePrimaria()].Longitud); } return(this.registros[llavePrimaria]); }
private void comboEntidad_SelectedIndexChanged(object sender, EventArgs e) { entidad = archivo.buscaEntidad(MetodosAuxiliares.ajustaCadena(this.comboEntidad.Text, Constantes.tam)); comboAtributo.Items.Clear(); comboAtributo.Text = ""; foreach (Atributo atributo in entidad.Atributos) { comboAtributo.Items.Add(MetodosAuxiliares.truncaCadena(atributo.Nombre)); } }
private void comboAtributo_SelectedIndexChanged(object sender, EventArgs e) { Atributo atributo; atributo = entidad.buscaAtributo(MetodosAuxiliares.ajustaCadena(comboAtributo.Text, Constantes.tam)); this.textBoxNombre.Text = MetodosAuxiliares.truncaCadena(atributo.Nombre); this.comboBoxTipo.Text = atributo.Tipo.ToString(); this.textBoxLong.Text = atributo.Longitud.ToString(); this.comboInidice.Text = comboInidice.Items[atributo.Indice].ToString(); }
public int baja(bool esCadena, char[] llave, int longitud,long direccion) { int i; int j; i = this.calculaCajon(esCadena, llave); j = this.indiceLlave(i,direccion); if(j > -1) { this.apuntadores[i, j] = -1; llaves[i, j] = "-1"; if(esCadena) { llaves[i, j] = MetodosAuxiliares.ajustaCadena(llaves[i, j], longitud); } } return i; }
public int alta(bool esCadena, char[] llave, int longitud,long dirección) { int i; int j; i = this.calculaCajon(esCadena, llave); j = this.buscaEspacioLibre(i); if(j > -1) { this.apuntadores[i, j] = dirección; this.llaves[i, j] = new string(llave); if (esCadena) { llaves[i, j] = MetodosAuxiliares.ajustaCadena(llaves[i,j],longitud); } } return i; }
private void ComboBox1_SelectedIndexChanged(object sender, EventArgs e) { Entidad entidad; Atributo atributo; entidad = this.archivo.buscaEntidad(MetodosAuxiliares.ajustaCadena(comboBoxEntRef.Text, Constantes.tam)); if (entidad.existeIndicePrimario()) { atributo = entidad.buscaAtributoForaneo(); this.comboTipo.Text = atributo.Tipo.ToString(); this.textBoxLong.Text = atributo.Longitud.ToString(); } else { this.ComboIndice.Text = "0: Sin indice"; MessageBox.Show("No existe Indice Primario", "Error"); } }
private void comboEntidad_SelectedIndexChanged(object sender, EventArgs e) { this.comboAtributo.Items.Clear(); this.entidad = archivo.buscaEntidad(MetodosAuxiliares.ajustaCadena(this.comboEntidad.Text, Constantes.tam)); foreach (Atributo buscando in entidad.Atributos) { comboAtributo.Items.Add(MetodosAuxiliares.truncaCadena(buscando.Nombre)); } if (this.comboAtributo.Items.Count > 0) { this.comboAtributo.Text = this.comboAtributo.Items[0].ToString(); } else { this.comboAtributo.Text = ""; this.comboAtributo_SelectedIndexChanged(comboAtributo, null); } }
private void ComboBox1_SelectedIndexChanged(object sender, EventArgs e) { Entidad entidad; entidad = archivo.buscaEntidad(MetodosAuxiliares.ajustaCadena(comboBoxEntidad.Text, Constantes.tam)); this.dataGridHash.Rows.Clear(); this.dataGridHashAuxiliar.Rows.Clear(); this.dataGridIdxPrimmario.Rows.Clear(); this.dataGridSecundario.Rows.Clear(); this.dataGridSecundarioAuxiliar.Rows.Clear(); this.comboBoxAtributosSecundarios.Text = ""; this.ComboBoxAtributosHash.Text = ""; this.comboBoxAtributosSecundarios.Items.Clear(); this.ComboBoxAtributosHash.Items.Clear(); this.actualizaDataGridRegistros(entidad); this.actualizaDataGridIndicePrimario(entidad); this.actualizaComboIndiceSecundario(entidad); this.actualizaComboIndiceHash(entidad); }
public HashEstatica(string nombre, long dir, int longitud, long dirSig, bool esCadena) : base(nombre, dir, dirSig)//OH no las cantantes!!! { this.direcciones = new long[Constantes.valorHash]; this.longitud = MetodosAuxiliares.calculaTamIdxPrim(longitud); this.llaves = new string[Constantes.valorHash, this.longitud]; this.apuntadores = new long[Constantes.valorHash, this.longitud]; for(int i = 0 ; i < Constantes.valorHash ; i++) { this.direcciones[i] = -1; for (int j = 0; j < this.longitud; j++) { this.llaves[i, j] = "-1"; this.apuntadores[i,j] = -1; if (esCadena) { llaves[i, j] = MetodosAuxiliares.ajustaCadena(llaves[i, j], longitud); } } } }
private void comboAtributo_SelectedIndexChanged(object sender, EventArgs e) { if (!string.IsNullOrEmpty(comboAtributo.Text)) { this.atributo = entidad.buscaAtributo(MetodosAuxiliares.ajustaCadena(comboAtributo.Text, Constantes.tam)); this.textBoxTipo.Text = this.atributo.Tipo.ToString(); this.textBoxLong.Text = atributo.Longitud.ToString(); this.textBoxIndicie.Text = MetodosAuxiliares.traduceIndice(atributo.Indice); this.textBoxDir.Text = atributo.DirActual.ToString(); this.textBox1.Text = atributo.DirIndice.ToString(); this.textBox2.Text = atributo.DirSig.ToString(); } else { this.textBoxTipo.Text = ""; this.textBoxLong.Text = ""; this.textBoxIndicie.Text = ""; this.textBoxDir.Text = ""; } }
private void ComboBoxAtributosHash_SelectedIndexChanged_1(object sender, EventArgs e) { Entidad entidad; entidad = archivo.buscaEntidad(MetodosAuxiliares.ajustaCadena(this.comboBoxEntidad.Text, Constantes.tam)); this.dataGridHash.Rows.Clear(); foreach (Atributo atributo in entidad.Atributos) { if (MetodosAuxiliares.truncaCadena(atributo.Nombre).Equals(this.ComboBoxAtributosHash.Text)) { foreach (Indice indice in atributo.Indices) { for (int i = 0; i < ((HashEstatica)indice).Direcciones.Length; i++) { this.dataGridHash.Rows.Add(i.ToString(), ((HashEstatica)indice).Direcciones[i].ToString()); } } break; } } }
private void DataGridHash_CellContentClick(object sender, DataGridViewCellEventArgs e) { int i; Entidad entidad; Atributo atributo; HashEstatica hash; DataGridViewCell cell; cell = dataGridHash.Rows[e.RowIndex].Cells[0]; entidad = this.archivo.buscaEntidad(MetodosAuxiliares.ajustaCadena(this.comboBoxEntidad.Text, Constantes.tam)); atributo = entidad.buscaAtributo(MetodosAuxiliares.ajustaCadena(this.ComboBoxAtributosHash.Text, Constantes.tam)); this.dataGridHashAuxiliar.Rows.Clear(); i = Int32.Parse(cell.Value.ToString()); hash = ((HashEstatica)atributo.Indices.First()); for (int j = 0; j < hash.Longitud; j++) { if (hash.Apuntadores[i, j] != -1) { this.dataGridHashAuxiliar.Rows.Add(MetodosAuxiliares.truncaCadena(hash.Llaves[i, j]), hash.Apuntadores[i, j]); } } }
public Secundario(string nombre, long dirAct, int tamañoArreglo, int longitud, long dirSig, bool esCadena) : base(nombre, dirAct, dirSig) { llaves = new string[tamañoArreglo]; this.direcciones = new long[tamañoArreglo]; this.apuntadores = new long[tamañoArreglo, Constantes.tamNodoAux]; for (int i = 0; i < llaves.Length; i++) { if (esCadena) { this.llaves[i] = MetodosAuxiliares.ajustaCadena("-1", longitud); } else { this.llaves[i] = "-1"; } this.direcciones[i] = -1; for (int j = 0; j < Constantes.tamNodoAux; j++) { this.apuntadores[i, j] = -1; } } }
private void ComboBoxAtributosForaneos_SelectedIndexChanged(object sender, EventArgs e) { Entidad entidad; entidad = archivo.buscaEntidad(MetodosAuxiliares.ajustaCadena(comboBoxEntidad.Text, Constantes.tam)); this.dataGridSecundario.Rows.Clear(); foreach (Atributo atributo in entidad.Atributos) { if (MetodosAuxiliares.truncaCadena(atributo.Nombre).Equals(this.comboBoxAtributosSecundarios.Text)) { foreach (Indice indice in atributo.Indices) { for (int i = 0; i < ((Secundario)indice).Llaves.Length; i++) { if (!MetodosAuxiliares.truncaCadena(((Secundario)indice).Llaves[i]).Equals("-1")) { this.dataGridSecundario.Rows.Add(MetodosAuxiliares.truncaCadena(((Secundario)indice).Llaves[i]), ((Secundario)indice).Direcciones[i]); } } } break; } } }
public void modificaRegistro(string llavePrimaria, List <string> datos, string directorio, string[] infoOriginal) { try { if (!this.registros.ContainsKey(datos[this.buscaIndiceClavePrimaria()]) | llavePrimaria.Equals(datos[this.buscaIndiceClavePrimaria()])) { int indiceLlavePrimaria; string archivoDat; string archivoIdx; Registro registro1; indiceLlavePrimaria = this.buscaIndiceClavePrimaria(); archivoDat = directorio + "\\" + MetodosAuxiliares.truncaCadena(this.nombre) + ".dat"; archivoIdx = directorio + "\\" + MetodosAuxiliares.truncaCadena(this.nombre) + ".idx"; if (this.atributos[indiceLlavePrimaria].Tipo.Equals('C')) { llavePrimaria = MetodosAuxiliares.ajustaCadena(llavePrimaria, this.atributos[indiceLlavePrimaria].Longitud); } registro1 = new Registro(this.registros[llavePrimaria].DirAct, datos); this.registros.Remove(llavePrimaria); this.registros.Add(datos[indiceLlavePrimaria], registro1); int i; i = 0; string llaveOriginal; string nuevallave; foreach (Atributo atributo in this.atributos) { llaveOriginal = infoOriginal[i]; nuevallave = datos[i]; switch (atributo.Indice) { case 2: atributo.modificaIndicePrimario(llavePrimaria, datos[indiceLlavePrimaria], archivoIdx); this.modificaLLaveForanea(this.dirActual, llaveOriginal, nuevallave, directorio); break; case 4: atributo.modificaIndiceSecundario(infoOriginal[i], datos[i], registro1.DirAct, archivoIdx); break; case 5: if (atributo.Tipo.Equals('C')) { llaveOriginal = MetodosAuxiliares.truncaCadena(llaveOriginal); nuevallave = MetodosAuxiliares.truncaCadena(nuevallave); } atributo.modificaHashEstatica(llaveOriginal, nuevallave, registro1.DirAct, archivoIdx); break; } i++; } this.ajustaDireccionesRegistros(); foreach (Registro registro in this.registros.Values) { this.grabaRegistro(registro, archivoDat); } } else { MessageBox.Show("Se intento agregar un dato ya existente", "Error"); } } catch (ArgumentException e) { MessageBox.Show(e.Message); } }
public void eliminarRegistro(string directorio, string llavePrimaria) { try { if (this.atributos[this.buscaIndiceClavePrimaria()].Equals('C')) { llavePrimaria = MetodosAuxiliares.ajustaCadena(llavePrimaria, this.atributos[this.buscaIndiceClavePrimaria()].Longitud); } if (this.registros.ContainsKey(llavePrimaria)) { string archivoDat; string archivoIdx; Registro reg; archivoDat = directorio + "\\" + MetodosAuxiliares.truncaCadena(this.nombre) + ".dat"; archivoIdx = directorio + "\\" + MetodosAuxiliares.truncaCadena(this.nombre) + ".idx"; if (this.atributos[this.buscaIndiceClavePrimaria()].Tipo.Equals('C')) { llavePrimaria = MetodosAuxiliares.ajustaCadena(llavePrimaria, this.atributos[this.buscaIndiceClavePrimaria()].Longitud); } else if (this.atributos[this.buscaIndiceClavePrimaria()].Tipo.Equals('E') | this.atributos[this.buscaIndiceClavePrimaria()].Tipo.Equals('D')) { llavePrimaria = MetodosAuxiliares.truncaCadena(llavePrimaria); } reg = this.registros[llavePrimaria]; if (!this.existeReferenciaForanea(this.dirActual, llavePrimaria)) { this.registros.Remove(llavePrimaria); int i; i = -1; foreach (Atributo atributo in this.atributos) { i++; switch (atributo.Indice) { case 2: atributo.eliminaIndicePrimario(llavePrimaria, archivoIdx); break; case 4: atributo.elimminaSecundario(reg.Datos[i], reg.DirAct, archivoIdx); break; case 5: atributo.elimminaHash(reg.Datos[i], reg.DirAct, archivoIdx); break; } if (atributo.DirIndice == -1) { this.grabaAtributo(atributo); } } this.ajustaDireccionesRegistros(); foreach (Registro registroAux in this.registros.Values) { this.grabaRegistro(registroAux, archivoDat); } } else { MessageBox.Show("Existen referencias foraneas a esta entidad por favor eliminelas antes", "Referencia Foranea detectada"); } } } catch (Exception e) { MessageBox.Show(e.Message, "Error"); } }
private void entidades_Clicked(object sender, ToolStripItemClickedEventArgs e) { #region Entidades if (this.archivo != null) { switch (e.ClickedItem.AccessibleName) { case "Alta": #region Alta AltaEntidad altaEntidad = new AltaEntidad(archivo.Nombre); if (altaEntidad.ShowDialog() == DialogResult.OK) { string nombre; nombre = MetodosAuxiliares.ajustaCadena(altaEntidad.Nombre, Constantes.tam); long dir; FileStream abierto; abierto = new FileStream(archivo.Nombre, FileMode.Append); //abre el archivo en un file stream dir = (long)abierto.Seek(0, SeekOrigin.End); //Calcula la direccion final del archivo y lo mete en un long abierto.Close(); //Cierra el file Stream archivo.altaEntidad(nombre, dir, -1, -1, -1); //Da de alta la entidad abierto = new FileStream(this.directorio + "\\" + altaEntidad.Nombre + ".dat", FileMode.Create); //Crea el archivo .dat de la entidad abierto.Close(); abierto = new FileStream(this.directorio + "\\" + altaEntidad.Nombre + ".idx", FileMode.Create); //Crea el archivo .idx de la entidad abierto.Close(); this.actualizaTodo(); //Actualiza todos los Data Grid } altaEntidad.Dispose(); //Eliminamos el objeto #endregion break; case "Modificar": if (this.archivo.Entidades.Count > 0) { #region Modificar ModificaEntidad modificaEntidad; modificaEntidad = new ModificaEntidad(this.archivo); if (modificaEntidad.ShowDialog().Equals(DialogResult.OK)) { string original; string nuevo; archivo.modificaEntidad(MetodosAuxiliares.ajustaCadena(modificaEntidad.Entidad, Constantes.tam), MetodosAuxiliares.ajustaCadena(modificaEntidad.Cambio, Constantes.tam)); original = this.directorio + "\\" + modificaEntidad.Entidad + ".dat"; nuevo = this.directorio + "\\" + modificaEntidad.Cambio + ".dat"; File.Move(original, nuevo); original = this.directorio + "\\" + modificaEntidad.Entidad + ".idx"; nuevo = this.directorio + "\\" + modificaEntidad.Cambio + ".idx"; File.Move(original, nuevo); this.actualizaTodo(); } modificaEntidad.Dispose(); #endregion } break; case "Consulta": if (this.archivo.Entidades.Count > 0) { #region Consulta ConsultaEntidad consultaEntidad; consultaEntidad = new ConsultaEntidad(this.archivo); consultaEntidad.ShowDialog(); consultaEntidad.Dispose(); #endregion } break; case "Eliminar": if (this.archivo.Entidades.Count > 0) { #region Eliminar SeleccionEntidad eliminaEntidad; eliminaEntidad = new SeleccionEntidad(this.archivo); if (eliminaEntidad.ShowDialog().Equals(DialogResult.OK)) { string nombreAuxiliar; nombreAuxiliar = this.directorio + "\\" + eliminaEntidad.Entidad; archivo.eliminaEntidad(MetodosAuxiliares.ajustaCadena(eliminaEntidad.Entidad, Constantes.tam), nombreAuxiliar); actualizaTodo(); } eliminaEntidad.Dispose(); #endregion } break; default: MessageBox.Show("Opción incorrecta o no implementada", "Atención"); break; } } else { MessageBox.Show("Por favor abra una base de datos", "Error"); } #endregion }
private void registros_ItemClicked(object sender, ToolStripItemClickedEventArgs e) { #region Registros if (this.archivo != null) { SeleccionEntidad seleccionEntidad; SeleccionRegistro seleccionRegistro; switch (e.ClickedItem.AccessibleName) { case "Alta": seleccionEntidad = new SeleccionEntidad(this.archivo); if (seleccionEntidad.ShowDialog().Equals(DialogResult.OK)) { AltaRegistro altaRegistro; altaRegistro = new AltaRegistro(this.archivo.buscaEntidad(MetodosAuxiliares.ajustaCadena(seleccionEntidad.Entidad, Constantes.tam))); altaRegistro.obtenLllaves += new AltaRegistro.ObtenLlaves(this.obtenLllavesEntidad); if (altaRegistro.ShowDialog().Equals(DialogResult.OK)) { this.archivo.altaRegistro(MetodosAuxiliares.ajustaCadena(seleccionEntidad.Entidad, Constantes.tam), this.directorio, altaRegistro.Informacion); this.actualizaTodo(); } altaRegistro.Dispose(); } seleccionEntidad.Dispose(); break; case "AltaSQL": AltaRegistroSQL altaRegistroSQL; altaRegistroSQL = new AltaRegistroSQL(this.directorio); altaRegistroSQL.altaSQL += new AltaRegistroSQL.AltaSQL(this.archivo.altaSQl); altaRegistroSQL.ShowDialog(); this.actualizaTodo(); altaRegistroSQL.Dispose(); break; case "Modificar": seleccionEntidad = new SeleccionEntidad(this.archivo); if (seleccionEntidad.ShowDialog().Equals(DialogResult.OK)) { Entidad entidad; entidad = this.archivo.buscaEntidad(MetodosAuxiliares.ajustaCadena(seleccionEntidad.Entidad, Constantes.tam)); seleccionRegistro = new SeleccionRegistro(entidad); if (seleccionRegistro.ShowDialog().Equals(DialogResult.OK)) { ModificaRegistro modificaRegistro; modificaRegistro = new ModificaRegistro(entidad, seleccionRegistro.ClaveDeBusqueda); modificaRegistro.obtenLllaves += new ModificaRegistro.ObtenLlaves(this.obtenLllavesEntidad); if (modificaRegistro.ShowDialog().Equals(DialogResult.OK)) { this.archivo.modificaRegistro(seleccionEntidad.Entidad, seleccionRegistro.ClaveDeBusqueda, modificaRegistro.InfoOriginal, modificaRegistro.Datos, this.directorio); this.actualizaTodo(); } } seleccionRegistro.Dispose(); } seleccionEntidad.Dispose(); break; case "Consulta Primario": seleccionEntidad = new SeleccionEntidad(this.archivo); if (seleccionEntidad.ShowDialog().Equals(DialogResult.OK)) { ConsultaRegistroPrimario consulta; Entidad entidad; entidad = this.archivo.buscaEntidad(MetodosAuxiliares.ajustaCadena(seleccionEntidad.Entidad, Constantes.tam)); if (entidad.Valores.Count > 0) { consulta = new ConsultaRegistroPrimario(entidad); consulta.Show(); } else { MessageBox.Show("La entidad seleccionada no contiene registros", "Error"); } } break; case "Consultas SQL": ConsultasSQL sql; sql = new ConsultasSQL(); sql.consultaAtributosSelect += new ConsultasSQL.ConsultaAtributosSelect(this.archivo.ConsultaAtributosSelect); sql.consultaRegistrosSelectWhere += new ConsultasSQL.ConsultaRegistrosSelectWhere(this.archivo.ConsultaRegistrosSelectWhere); sql.innerJoin += new ConsultasSQL.InnerJoin(this.archivo.InnerJoin); sql.consultaAtributosSelectInnerJoin += new ConsultasSQL.ConsultaAtributosSelectInnerJoin(this.archivo.ConsultaAtributosSelectInnerJoin); sql.consultaRegistrosSelectAnd += new ConsultasSQL.ConsultaRegistrosSelectAnd(this.archivo.consultaRegistrosInnerJoinAnd); sql.Show(); break; case "Eliminar": seleccionEntidad = new SeleccionEntidad(this.archivo); if (seleccionEntidad.ShowDialog().Equals(DialogResult.OK)) { seleccionRegistro = new SeleccionRegistro(this.archivo.buscaEntidad(MetodosAuxiliares.ajustaCadena(seleccionEntidad.Entidad, Constantes.tam))); if (seleccionRegistro.ShowDialog().Equals(DialogResult.OK)) { this.archivo.eliminaRegistro(MetodosAuxiliares.ajustaCadena(seleccionEntidad.Entidad, Constantes.tam), seleccionRegistro.ClaveDeBusqueda, this.directorio); this.actualizaTodo(); } } seleccionEntidad.Dispose(); break; } } else { MessageBox.Show("Por favor abra una base de datos o cree", "Error"); } #endregion }
private void atributos_Clicked(object sender, ToolStripItemClickedEventArgs e) { #region Atributos if (this.archivo != null) { if (this.archivo.Entidades.Count != 0) { #region Existen Entidades switch (e.ClickedItem.AccessibleName) { case "Alta": #region Alta AltaAtributo altaAtributo; altaAtributo = new AltaAtributo(this.archivo); if (altaAtributo.ShowDialog().Equals(DialogResult.OK)) { long dir; FileStream abierto; abierto = new FileStream(archivo.Nombre, FileMode.Append); //abre el archivo en un file stream dir = (long)abierto.Seek(0, SeekOrigin.End); //Calcula la direccion final del archivo y lo mete en un long abierto.Close(); //Cierra el file Stream archivo.altaAtributo(MetodosAuxiliares.ajustaCadena(altaAtributo.Entidad, Constantes.tam), MetodosAuxiliares.ajustaCadena(altaAtributo.Nombre, Constantes.tam), altaAtributo.Tipo, altaAtributo.Longitud, altaAtributo.Indice, dir, altaAtributo.DirIndice); this.actualizaTodo(); } altaAtributo.Dispose(); #endregion break; case "Modificar": #region Modificar ModificaAtributo modificaAtributo; modificaAtributo = new ModificaAtributo(archivo); if (modificaAtributo.ShowDialog().Equals(DialogResult.OK)) { archivo.modificaAtributo(MetodosAuxiliares.ajustaCadena(modificaAtributo.Entidad, Constantes.tam), MetodosAuxiliares.ajustaCadena(modificaAtributo.Atributo, Constantes.tam), MetodosAuxiliares.ajustaCadena(modificaAtributo.Nombre, Constantes.tam), modificaAtributo.Tipo, modificaAtributo.Longitud, modificaAtributo.Indice, modificaAtributo.DirIndice); this.actualizaTodo(); } modificaAtributo.Dispose(); #endregion break; case "Consulta": #region Consulta ConsultaAtributo consultaAtributo; consultaAtributo = new ConsultaAtributo(this.archivo); consultaAtributo.ShowDialog(); consultaAtributo.Dispose(); #endregion break; case "Eliminar": #region Eliminar EliminarAtributo eliminarAtributo; eliminarAtributo = new EliminarAtributo(this.archivo); if (eliminarAtributo.ShowDialog().Equals(DialogResult.OK)) { this.archivo.eliminaAtributo(MetodosAuxiliares.ajustaCadena(eliminarAtributo.Entidad, Constantes.tam), MetodosAuxiliares.ajustaCadena(eliminarAtributo.Atributo, Constantes.tam)); this.actualizaTodo(); } eliminarAtributo.Dispose(); #endregion break; default: MessageBox.Show("Opción incorrecta o no implementada", "Atención"); break; } #endregion } else { MessageBox.Show("Por favor Agregue Entidades primero", "Imposible"); } } else { MessageBox.Show("Por favor cree una base de d atos primero", "Error"); } #endregion }