public void VerColumnasSelect(string nombreTabla, List <string> listacolumnasselect) { ArbolB arbolb = new ArbolB(); if (!File.Exists("VALORES" + nombreTabla.ToUpper() + ".arbol")) { using (System.IO.StreamWriter streamWriter = new System.IO.StreamWriter("VALORES" + nombreTabla.ToUpper() + ".arbol")) { streamWriter.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(arbolb)); streamWriter.Close(); } } if (File.Exists(nombreTabla.ToUpper() + ".tabla")) { listaDeColumnas = Newtonsoft.Json.JsonConvert.DeserializeObject <List <DefColumna> >(File.ReadAllText(nombreTabla.ToUpper() + ".tabla")); } DefColumna tmp = new DefColumna(); DefColumna tmp2 = new DefColumna(); DefColumna tmp3 = new DefColumna(); List <DefColumna> tmplistas = new List <DefColumna>(); for (int i = 0; i < listacolumnasselect.Count(); i++) { tmp.nombreColumna = listacolumnasselect[i]; tmp2 = listaDeColumnas[i]; if (listacolumnasselect[i] == tmp2.nombreColumna) { tmp.tipoColumna = listaDeColumnas[i].tipoColumna; tmp.list_string = listaDeColumnas[i].list_string; tmplistas.Add(tmp); } } listaDeColumnas = tmplistas; }
public void EliminarValores(string tabla, string nombretabla, string id) { ArbolB arbolb = new ArbolB(); Node nodotmp = new Node(); if (File.Exists("VALORES" + tabla.ToUpper() + ".arbol")) { using (System.IO.StreamReader str = new System.IO.StreamReader("VALORES" + tabla.ToUpper() + ".arbol")) { arbolb = Newtonsoft.Json.JsonConvert.DeserializeObject <ArbolB>("VALORES" + tabla.ToUpper() + ".arbol"); str.Close(); } } nodotmp = arbolb.Buscar(id); arbolb.Eliminar(id); if (File.Exists(tabla.ToUpper() + ".tabla")) { listaDeColumnas = Newtonsoft.Json.JsonConvert.DeserializeObject <List <DefColumna> >(File.ReadAllText(tabla.ToUpper() + ".tabla")); } DefColumna tmp = new DefColumna(); tmp.nombreColumna = id; for (int i = 0; i < listaDeColumnas.Count(); i++) { if (listaDeColumnas[i].nombreColumna == tmp.nombreColumna) { listaDeColumnas.Remove(listaDeColumnas[i]); } } using (System.IO.StreamWriter streamWriter = new System.IO.StreamWriter(tabla.ToUpper() + ".tabla")) { streamWriter.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(listaDeColumnas)); streamWriter.Close(); } using (System.IO.StreamWriter streamWriter = new System.IO.StreamWriter("VALORES" + tabla.ToUpper() + ".tabla")) { streamWriter.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(nuevaColumna)); streamWriter.Close(); } }
public void EliminarValores(string nombrecolumna, string nombretabla, string id) { /* ArbolB arbolb = new ArbolB(); * Node nodotmp = new Node(); * if (File.Exists("VALORES" + nombretabla.ToUpper() + ".arbol")) * { * * using (System.IO.StreamReader str = new System.IO.StreamReader("VALORES" + nombretabla.ToUpper() + ".arbol")) * { * * arbolb = Newtonsoft.Json.JsonConvert.DeserializeObject<ArbolB>("VALORES" + nombretabla.ToUpper() + ".arbol"); * str.Close(); * } * } * nodotmp = arbolb.Buscar(id); * arbolb.Eliminar(id); */ DefColumna tmp = new DefColumna(); if (File.Exists("VALORES" + nombretabla.ToUpper() + ".tabla")) { tmp = Newtonsoft.Json.JsonConvert.DeserializeObject <DefColumna>(File.ReadAllText("VALORES" + nombretabla.ToUpper() + ".tabla")); } if (tmp.list_string.Contains(id)) { if (System.IO.File.Exists("VALORES" + nombretabla.ToUpper() + ".arbol")) { System.IO.File.Delete("VALORES" + nombretabla.ToUpper() + ".arbol"); } if (System.IO.File.Exists(nombretabla.ToUpper() + ".tabla")) { System.IO.File.Delete(nombretabla.ToUpper() + ".tabla"); } if (System.IO.File.Exists("VALORES" + nombretabla.ToUpper() + ".tabla")) { System.IO.File.Delete("VALORES" + nombretabla.ToUpper() + ".tabla"); } } }
public string EjecutarComando(string Comando) { string[] palabras = Comando.Split(" "); int estado = 0; string id = ""; string nombreTabla = ""; string tipoComando = ""; List <DefColumna> listaDefColumnas = new List <DefColumna>(); List <string> listaDeValores = new List <string>(); List <string> listadeColumnas = new List <string>(); List <string> listacolumnasselect = new List <string>(); DefColumna tmp = new DefColumna(); string resultado = ""; foreach (var palabra in palabras) { switch (estado) { case 0: if (palabra.ToUpper() == "CREATE") { estado = 1; } else if (palabra.ToUpper() == "SELECT") { estado = 22; } else if (palabra.ToUpper() == "INSERT") { estado = 10; } else if (palabra.ToUpper() == "DELETE") { estado = 26; } else if (palabra.ToUpper() == "DROP") { estado = 29; tipoComando = "DROP_TABLE"; } break; case 29: if (palabra == "TABLE") { estado = 30; } break; case 30: nombreTabla = palabra; estado = 7; break; case 26: if (palabra == "FROM") { estado = 2; } break; case 1: if (palabra.ToUpper() == "TABLE") { tipoComando = "CREAR_TABLA"; estado = 2; } break; case 2: nombreTabla = palabra; estado = 3; break; case 3: if (palabra == "(") { estado = 4; } else if (palabra == "WHERE") { estado = 23; } break; case 4: tmp = new DefColumna(); tmp.nombreColumna = palabra; estado = 5; break; case 5: tmp.tipoColumna = palabra; listaDefColumnas.Add(tmp); estado = 6; break; case 6: if (palabra == ",") { estado = 4; } else if (palabra == ")") { estado = 7; } break; case 7: if (palabra.ToUpper() == "GO") { if (tipoComando == "CREAR_TABLA") { //termine y creo el archivo y el arbol, devolver tabla creada correctamente _tablaRepository.CrearTabla(nombreTabla, listaDefColumnas); resultado = "Tabla creada exitosamente"; } else if (tipoComando == "SELECCIONAR_VALORES") { resultado = "SELECCIONAR_VALORES"; _tablaRepository.VerColumnasSelect(nombreTabla, listacolumnasselect); } else if (tipoComando == "INSERT_INTO") { resultado = "INSERT_INTO"; _tablaRepository.InsertarValores(nombreTabla, listaDeValores); } else if (tipoComando == "DELETE") { resultado = "DELETE"; _tablaRepository.EliminarValores(nombreTabla, nombreTabla, id); Valores.list_string = listaDeValores; } else if (tipoComando == "DROP_TABLE") { resultado = "DROP_TABLE"; _tablaRepository.DropTable(nombreTabla); } } break; case 8: if (palabra.ToUpper() == "FROM") { estado = 9; } break; case 22: listacolumnasselect.Add(palabra); estado = 27; break; case 27: if (palabra == ",") { estado = 22; } else if (palabra != "FROM") { estado = 22; } else { estado = 9; } break; case 28: if (palabra.ToUpper() == "FROM") { estado = 9; } break; case 9: nombreTabla = palabra; tipoComando = "SELECCIONAR_VALORES"; estado = 7; break; case 10: if (palabra.ToUpper() == "INTO") { tipoComando = "INSERT_INTO"; estado = 11; } break; case 11: nombreTabla = palabra; estado = 12; break; case 12: if (palabra == "(") { estado = 14; } break; case 13: listadeColumnas.Add(palabra); estado = 14; break; case 14: if (palabra == ",") { estado = 13; } else if (palabra == ")") { estado = 15; } break; case 15: if (palabra == "VALUES") { estado = 16; } break; case 16: if (palabra == "(") { estado = 17; } break; case 17: listaDeValores.Add(palabra); estado = 18; break; case 18: if (palabra == ",") { estado = 17; } else if (palabra == ")") { estado = 7; } break; case 23: tmp.nombreColumna = palabra; estado = 24; break; case 24: if (palabra == "=") { estado = 25; } break; case 25: id = palabra; estado = 7; tipoComando = "DELETE"; break; default: break; } } return(resultado); }
//Crear arbol con llave ID void HandlePredicate(DefColumna obj) { }