Esempio n. 1
0
        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;
        }
Esempio n. 2
0
        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();
            }
        }
Esempio n. 3
0
        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);
        }
Esempio n. 5
0
        //Crear arbol con llave ID

        void HandlePredicate(DefColumna obj)
        {
        }