Пример #1
0
 def ejecutar(self):
     global resultadotxt
     global cont
     global tabla
     global NombreDB
     try:       
         resultado = func.createTable(NombreDB, self.iden,len(self.coltb))
         if(resultado == 2):
             resultadotxt += "No existe la base de datos: " + NombreDB + "\n"
         elif(resultado == 3):
             resultadotxt += "La tabla ya existe: " + self.iden + "\n"
         else:
             resultadotxt += "Se creo la tabla: " + self.iden + " En la base de datos: " + NombreDB + "\n"
             buscar = tabla.BuscarNombre(NombreDB)
             simbolo = TS.Simbolo(cont,TS.TIPO.TABLE, self.iden, buscar.id)
             cont+=1
             tabla.agregar(simbolo)
             """SE CREAN LAS COLUMNAS PARA LA TABLA"""
             inicio = 1
             for columna in self.coltb:
                 ncolumna = TS.Simbolo(cont,columna.tipo,columna.iden,simbolo.id,inicio)
                 inicio+=1
                 cont+=1
                 tabla.agregar(ncolumna)
     except:
         """ERROR SEMANTICO"""
Пример #2
0
 def ejecutar(self):
     global resultadotxt
     global cont
     global tabla
     global contambito
     try:
         resultado = func.createDatabase(self.iden)
         if resultado == 0:
             resultadotxt += "Se creo la base de datos " + self.iden + "\n"
             NuevoSimbolo = TS.Simbolo(cont, self.iden, TS.TIPO.DATABASE,
                                       contambito)
             cont += 1
             contambito += 1
             tabla.agregar(NuevoSimbolo)
         elif resultado == 2 and not self.replacedb:
             resultadotxt += "Ya existe la base de datos " + self.iden + "\n"
         elif resultado == 2 and self.replacedb:
             func.dropDatabase(self.iden)
             buscar = tabla.BuscarNombre(self.iden)
             tabla.simbolos.pop(buscar.id)
             func.createDatabase(self.iden)
             NuevoSimbolo = TS.Simbolo(cont, self.iden, TS.TIPO.DATABASE,
                                       contambito)
             cont += 1
             contambito += 1
             tabla.agregar(NuevoSimbolo)
             resultadotxt += "Se reemplazo la base de datos: " + self.iden + "\n"
         else:
             resultadotxt += "Error al crear base de datos: " + self.iden + "\n"
     except:
         """ERROR SEMANTICO"""
Пример #3
0
def ejecutar():
    global cont
    global ts
    NombreDB = ts.nameDB
	
	sql.execute("CREATE DATABASE DBFase2;")
	sql.execute("USE DATABASE DBFase2;")
	NombreDB = ts.nameDB
	sql.execute("CREATE TABLE tbProducto(idproducto integer NOT NULL PRIMARY KEY,producto varchar(150) NOT NULL,fechacreacion date NOT NULL,estado integer);")
	sql.execute("CREATE TABLE tbCalificacion(idcalifica integer NOT NULL PRIMARY KEY,item varchar(100) NOT NULL,punteo integer NOT NULL);")
	sql.execute("INSERT INTO tbProducto VALUES('1.0',''Laptop Lenovo'',2021-01-07 00:00:00,'1.0');")
	sql.execute("INSERT INTO tbProducto VALUES('2.0',''Bateria para Laptop Lenovo T420'',2021-01-07 00:00:00,'1.0');")
	sql.execute("INSERT INTO tbProducto VALUES('3.0',''Teclado Inalambrico'',2021-01-07 00:00:00,'1.0');")
	sql.execute("INSERT INTO tbProducto VALUES('4.0',''Mouse Inalambrico'',2021-01-07 00:00:00,'1.0');")
	sql.execute("INSERT INTO tbProducto VALUES('5.0',''WIFI USB'',2021-01-07 00:00:00,'1.0');")
	sql.execute("INSERT INTO tbProducto VALUES('6.0',''Laptop HP'',2021-01-07 00:00:00,'1.0');")
	sql.execute("INSERT INTO tbProducto VALUES('7.0',''Teclado Flexible USB'',2021-01-07 00:00:00,'1.0');")
	sql.execute("INSERT INTO tbProducto VALUES('8.0',''Laptop Samsung'',''2021-01-02'','1.0');")
	n_db = ts.buscarIDTB(NombreDB)
	NuevoSimbolo = TAS.Simbolo(cont,'myFuncion',TAS.TIPO.FUNCTION,n_db)
	ts.agregar(NuevoSimbolo)
	cont+=1

	sql.execute('SELECT * FROM temp')
	graphTable(ts)
Пример #4
0
def ejecutar(self):
    global resultadotxt
    global cont
    global tabla
    global contambito
    try:
        try:
            resultado = func.createDatabase(self.iden)
            if resultado == 0:
                NuevoSimbolo = TS.Simbolo(cont,self.iden,TS.TIPO.DATABASE,contambito)
Пример #5
0
def ejecutar():
    global cont
    global ts
    NombreDB = ts.nameDB

    n_db = ts.buscarIDTB(NombreDB)
    NuevoSimbolo = TAS.Simbolo(cont, 'myFuncion', TAS.TIPO.FUNCTION, n_db)
    ts.agregar(NuevoSimbolo)
    cont += 1

    texto = pila[0]
Пример #6
0
 def ejecutar(self):
     global resultadotxt
     global cont
     global tabla
     global NombreDB
     for alteracion in self.altertb2:
         if alteracion.texto and alteracion.texto.lower() == "add":
             if alteracion.addprop.texto and alteracion.addprop.texto.lower(
             ) == "column":
                 NuevaColumna = alteracion.addprop.lista
                 try:
                     resultado = func.alterAddColumn(
                         NombreDB, self.iden, NuevaColumna.iden)
                     if resultado == 2:
                         resultadotxt += "No existe la base de datos " + NombreDB + "\n"
                     elif resultado == 3:
                         resultadotxt += "No existe la tabla " + self.iden + "\n"
                     else:
                         BuscarTabla = tabla.BuscarNombre(self.iden)
                         BuscarTabla.coltab += 1
                         tabla.actualizar(BuscarTabla)
                         NuevoSimboloColumna = TS.Simbolo(
                             cont, NuevaColumna.iden, TS.TIPO.COLUMN,
                             BuscarTabla.id, 0, NuevaColumna.tipo, 0, "",
                             "", False, "", (BuscarTabla.coltab - 1))
                         cont += 1
                         tabla.agregar(NuevoSimboloColumna)
                         resultadotxt += "Se agrego la columna " + NuevoSimboloColumna.nombre + " a la tabla " + self.iden + "\n"
                 except:
                     """ERROR SEMANTICO"""
         if alteracion.texto and alteracion.texto.lower() == "drop column":
             try:
                 ColumnaABorrar = tabla.BuscarNombre(alteracion.iden)
                 resultado = func.alterDropColumn(NombreDB, self.iden,
                                                  ColumnaABorrar.numcol)
                 if resultado == 2:
                     resultadotxt += "La base de datos " + NombreDB + " No existe \n"
                 elif resultado == 3:
                     resultadotxt += "No se encontro la tabla " + self.iden + " en la base de datos " + NombreDB + "\n"
                 elif resultado == 4:
                     resultadotxt += "La columna " + ColumnaABorrar.nombre + " Es llave primaria" + "\n"
                 elif resultado == 5:
                     resultadotxt += "La columna " + ColumnaABorrar.nombre + " No existe" + "\n"
                 else:
                     tabla.simbolos.pop(ColumnaABorrar.id)
                     resultadotxt += "Se elimino la columna " + ColumnaABorrar.nombre + " de la tabla " + self.iden + "\n"
             except:
                 """ERROR SEMANTICO"""
Пример #7
0
def meterSimbolos():

    ts.agregar(
        TabladeSimbolos.Simbolo(0, 'DB1', TabladeSimbolos.TIPO.DATABASE, None,
                                None, None, None, None, None, None, None, None,
                                None))

    ts.agregar(
        TabladeSimbolos.Simbolo(1, 'tbempleado', TabladeSimbolos.TIPO.TABLE, 0,
                                None, None, None, None, None, None, None, None,
                                None))
    ts.agregar(
        TabladeSimbolos.Simbolo(2, 'id', TabladeSimbolos.TIPO.COLUMN, 1, None,
                                None, None, None, None, None, None, 0, None))
    ts.agregar(
        TabladeSimbolos.Simbolo(3, 'nombre', TabladeSimbolos.TIPO.COLUMN, 1,
                                None, None, None, None, None, None, None, 1,
                                None))
    ts.agregar(
        TabladeSimbolos.Simbolo(4, 'apellido', TabladeSimbolos.TIPO.COLUMN, 1,
                                None, None, None, None, None, None, None, 2,
                                None))

    ts.agregar(
        TabladeSimbolos.Simbolo(5, 'tbusuario', TabladeSimbolos.TIPO.TABLE, 0,
                                None, None, None, None, None, None, None, None,
                                None))

    ts.agregar(
        TabladeSimbolos.Simbolo(6, 'id', TabladeSimbolos.TIPO.COLUMN, 5, None,
                                None, None, None, None, None, None, 0, None))
    ts.agregar(
        TabladeSimbolos.Simbolo(7, 'nombre', TabladeSimbolos.TIPO.COLUMN, 5,
                                None, None, None, None, None, None, None, 1,
                                None))
    ts.agregar(
        TabladeSimbolos.Simbolo(8, 'apellido', TabladeSimbolos.TIPO.COLUMN, 5,
                                None, None, None, None, None, None, None, 2,
                                None))
Пример #8
0
 def ejecutar(self):
     global resultadotxt
     global cont
     global tabla
     global NombreDB
     if self.altertb2.text.lower() == "add column":
         try:
             resultado = func.alterAddColumn(NombreDB, self.iden,
                                             self.altertb2.iden)
             if resultado == 2:
                 resultadotxt += "No existe la base de datos " + NombreDB + "\n"
             elif resultado == 3:
                 resultadotxt += "No existe la tabla " + self.iden + "\n"
             else:
                 buscar = tabla.BuscarNombre(self.iden)
                 columna = self.altertb2
                 buscar.coltab += 1
                 tabla.actualizar(buscar)
                 NuevaColumna = TS.Simbolo(cont, columna.iden,
                                           TS.TIPO.COLUMN, buscar.id, 0,
                                           columna.tipo, 0, "", "", False,
                                           "", (buscar.coltab - 1))
                 cont += 1
                 tabla.agregar(NuevaColumna)
                 resultadotxt += "Se agrego la columna " + self.altertb2.iden + " a la tabla " + self.iden + "\n"
         except:
             """ERROR SEMANTICO"""
     elif self.altertb2.text.lower() == "drop column":
         try:
             delcolumna = tabla.BuscarNombre(self.altertb2.iden)
             resultado = func.alterDropColumn(NombreDB, self.iden,
                                              delcolumna.numcol)
             if resultado == 2:
                 resultadotxt += "La base de datos " + NombreDB + " No existe \n"
             elif resultado == 3:
                 resultadotxt += "No se encontro la tabla " + self.iden + " en la base de datos " + NombreDB + "\n"
             elif resultado == 4:
                 resultadotxt += "La columna " + self.altertb2.iden + " Es llave primaria" + "\n"
             elif resultado == 5:
                 resultadotxt += "La columna " + self.altertb2.iden + " No existe" + "\n"
             else:
                 tabla.simbolos.pop(delcolumna.id)
                 resultadotxt += "Se elimino la columna " + self.altertb2.iden + " de la tabla " + self.iden + "\n"
         except:
             """ERROR SEMANTICO"""
Пример #9
0
 def ejecutar(self):
     global resultadotxt
     global cont
     global tabla
     global NombreDB
     if self.altertb2.text.lower() == "add column":
         try:
             resultado = func.alterAddColumn(NombreDB,self.iden,self.altertb2.iden)
             if resultado == 2:
                 resultadotxt += "No existe la base de datos: " + NombreDB + "\n"
             elif resultado == 3:
                 resultadotxt += "No existe la tabla: " + self.iden + "\n"
             else:
                 resultadotxt += "Se agrego la columna " + self.altertb2.iden + " a la tabla " + self.iden + "\n"
                 buscar = tabla.BuscarNombre(self.iden)
                 ncolumna = TS.Simbolo(cont,self.altertb2.tipo,self.altertb2.iden,buscar.id)
                 cont+=1
                 tabla.agregar(ncolumna)
         except:
             """ERROR SEMANTICO"""
     elif self.altertb2.text.lower() == "drop column":
         try:
             basedatos = tabla.BuscarNombre(NombreDB)
             tablas = tabla.BuscarNombre(self.iden)
             print("BUSCANDO: " + self.altertb2.iden)
             bcol = tabla.BuscarNombre(self.altertb2.iden)
             print("ENCONTRADO: " + bcol.valor)
             if basedatos:
                 print("AAAAAAAAA")
                 if tabla:
                     print("BBBBBBBBB")
                     if bcol:
                         print("CCCCCCCCCCC")
                         tabla.simbolos.pop(bcol.id)
                         resultadotxt += "Se elimino la columna " + self.altertb2.iden + " de la tabla " + self.iden + "\n"
                     else:
                         resultadotxt += "No se encontro la columna: " + self.altertb2.iden + " en la tabla " + self.iden + "\n"
                 else:
                     resultadotxt += "No se encontro la tabla: " + self.iden + " en la base de datos " + NombreDB + "\n"
             else:
                 resultadotxt += "La base de datos " + NombreDB + " No existe \n"
         except:
             """ERROR SEMANTICO"""
Пример #10
0
 def ejecutar(self):
     global resultadotxt
     global cont
     global tabla
     global NombreDB
     try:
         columnasdetabla = []
         tablas = tabla.BuscarNombre(self.iden)
         for simbolo in tabla.simbolos:
             if tabla.simbolos[simbolo].ambito == tablas.id and not tabla.simbolos[
                     simbolo].tipo == TS.TIPO.DATABASE and not tabla.simbolos[
                         simbolo].tipo == TS.TIPO.TABLE and not tabla.simbolos[
                             simbolo].tipo == TS.TIPO.TUPLA:
                 columnasdetabla.append(tabla.simbolos[simbolo])
         colcorrecta = []
         iter = 0
         for columna in columnasdetabla:
             if VerificarTipo(columna.tipocol, self.valores[iter]):
                 colcorrecta.append(self.valores[iter])
             iter += 1
         resultado = func.insert(NombreDB, self.iden, colcorrecta)
         if resultado == 2:
             resultadotxt += "No existe la base de datos " + NombreDB + "\n"
         elif resultado == 3:
             resultadotxt += "No existe la base tabla " + NombreDB + "\n"
         elif resultado == 5:
             resultadotxt += "La cantidad de valores no coincide con la cantidad de columnas\n"
         else:
             nombre = ""
             for element in colcorrecta:
                 nombre += str(element) + " "
             NuevoRegistro = TS.Simbolo(cont, nombre, TS.TIPO.TUPLA,
                                        tablas.id)
             tabla.agregar(NuevoRegistro)
             resultadotxt += "El registro  " + self.valores[
                 0] + " fue agregado a la tabla " + self.iden + "\n"
     except:
         """ERRORES SEMANTICOS"""
Пример #11
0
 def ejecutar(self):
     global resultadotxt
     global cont
     global tabla
     global NombreDB
     try:
         resultado = func.createTable(NombreDB, self.iden, 0)
         if (resultado == 2):
             resultadotxt += "No existe la base de datos: " + NombreDB + "\n"
         elif (resultado == 3):
             resultadotxt += "La tabla ya existe: " + self.iden + "\n"
         else:
             buscar = tabla.BuscarNombre(NombreDB)
             NuevoSimbolo = TS.Simbolo(cont, self.iden, TS.TIPO.TABLE,
                                       buscar.id, 0)
             cont += 1
             tabla.agregar(NuevoSimbolo)
             """SE CREAN LAS COLUMNAS PARA LA TABLA"""
             inicio = 0
             for columna in self.coltb:
                 try:
                     if "primary key " in columna.key.lower():
                         NuevaColumna = TS.Simbolo(
                             cont, columna.iden, TS.TIPO.COLUMN,
                             NuevoSimbolo.id, 0, columna.tipo, 1,
                             columna.references, columna.default, False,
                             columna.constraint, inicio)
                         listacol = []
                         listacol.append(NuevaColumna.numcol)
                         print(max(listacol))
                         print(min(listacol))
                         resultado = func.alterAddPK(
                             NombreDB, NuevoSimbolo.nombre, listacol)
                         resultado2 = func.alterAddColumn(
                             NombreDB, self.iden, columna)
                     else:
                         NuevaColumna = TS.Simbolo(
                             cont, columna.iden, TS.TIPO.COLUMN,
                             NuevoSimbolo.id, 0, columna.tipo, 0,
                             columna.references, columna.default, False,
                             columna.constraint, inicio)
                         resultado = func.alterAddColumn(
                             NombreDB, self.iden, columna)
                     if resultado == 2:
                         resultadotxt += "No existe la base de datos " + NombreDB + "\n"
                     elif resultado == 3:
                         resultadotxt += "No existe la tabla " + self.iden + "\n"
                     elif resultado == 4:
                         resultadotxt += "Ya existe una llave primaria en " + self.iden + "\n"
                     else:
                         if columna.notnull.lower() == "not null":
                             NuevaColumna.nullcol = True
                         else:
                             NuevaColumna.nullcol = False
                         cont += 1
                         inicio += 1
                         NuevoSimbolo.coltab += 1
                         tabla.actualizar(NuevoSimbolo)
                         tabla.agregar(NuevaColumna)
                         resultadotxt += "Se agrego la columna " + columna.iden + " a la tabla " + self.iden + "\n"
                 except:
                     """ERROR SEMANTICO"""
             resultadotxt += "Se creo la tabla: " + self.iden + " En la base de datos: " + NombreDB + "\n"
     except:
         """ERROR SEMANTICO"""
Пример #12
0
    def ejecutar(self):
        #ambitoDB = ts.buscarIDDB(dga.NombreDB)
        ambitoFuncion =  ts.buscarIDF(dga.cont)

        if self.tipo == 'SMALLINT':
            

            NuevoSimbolo = TAS.Simbolo(dga.cont,self.id,TAS.TIPO.SMALLINT,ambitoFuncion,None, None, None, None, None, None, None ,None,None,self.exp, self.collate,self.notnull) 
            ts.agregar(NuevoSimbolo)
        elif self.tipo == 'INTEGER':
            NuevoSimbolo = TAS.Simbolo(dga.cont,self.id,TAS.TIPO.INTEGER,ambitoFuncion,None, None, None, None, None, None, None ,None,None,self.exp, self.collate,self.notnull) 
            ts.agregar(NuevoSimbolo)
        elif self.tipo == 'BIGINT':
            NuevoSimbolo = TAS.Simbolo(dga.cont,self.id,TAS.TIPO.BIGINT,ambitoFuncion,None, None, None, None, None, None, None ,None,None,self.exp, self.collate,self.notnull) 
            ts.agregar(NuevoSimbolo)
        elif self.tipo == 'DECIMAL':
            NuevoSimbolo = TAS.Simbolo(dga.cont,self.id,TAS.TIPO.DECIMAL,ambitoFuncion,None, None, None, None, None, None, None ,None,None,self.exp, self.collate,self.notnull) 
            ts.agregar(NuevoSimbolo)
        elif self.tipo == 'NUMERIC': 
            NuevoSimbolo = TAS.Simbolo(dga.cont,self.id,TAS.TIPO.NUMERIC,ambitoFuncion,None, None, None, None, None, None, None ,None,None,self.exp, self.collate,self.notnull) 
            ts.agregar(NuevoSimbolo)
        elif self.tipo == 'REAL':
            NuevoSimbolo = TAS.Simbolo(dga.cont,self.id,TAS.TIPO.REAL,ambitoFuncion,None, None, None, None, None, None, None ,None,None,self.exp, self.collate,self.notnull) 
            ts.agregar(NuevoSimbolo)
        elif self.tipo == 'DOUBLE':   
            NuevoSimbolo = TAS.Simbolo(dga.cont,self.id,TAS.TIPO.DOUBLE,ambitoFuncion,None, None, None, None, None, None, None ,None,None,self.exp, self.collate,self.notnull) 
            ts.agregar(NuevoSimbolo)
        elif self.tipo == 'PRECISION':
            NuevoSimbolo = TAS.Simbolo(dga.cont,self.id,TAS.TIPO.PRECISION,ambitoFuncion,None, None, None, None, None, None, None ,None,None,self.exp, self.collate,self.notnull) 
            ts.agregar(NuevoSimbolo)
        elif self.tipo == 'CHARACTER':
            NuevoSimbolo = TAS.Simbolo(dga.cont,self.id,TAS.TIPO.CHARACTER,ambitoFuncion,None, None, None, None, None, None, None ,None,None,self.exp, self.collate,self.notnull) 
            ts.agregar(NuevoSimbolo)
        elif self.tipo == 'CHARACTER_VARYING':
            NuevoSimbolo = TAS.Simbolo(dga.cont,self.id,TAS.TIPO.CHARACTER_VARING,ambitoFuncion,None, None, None, None, None, None, None ,None,None,self.exp, self.collate,self.notnull) 
            ts.agregar(NuevoSimbolo)
        elif self.tipo == 'TEXT': 
            NuevoSimbolo = TAS.Simbolo(dga.cont,self.id,TAS.TIPO.TEXT,ambitoFuncion,None, None, None, None, None, None, None ,None,None,self.exp, self.collate,self.notnull) 
            ts.agregar(NuevoSimbolo)
        elif self.tipo == 'TIMESTAMP':
            NuevoSimbolo = TAS.Simbolo(dga.cont,self.id,TAS.TIPO.TIMESTAMP,ambitoFuncion,None, None, None, None, None, None, None ,None,None,self.exp, self.collate,self.notnull) 
            ts.agregar(NuevoSimbolo)
Пример #13
0
def ejecutar():
    global cont
    global ts
    NombreDB = ts.nameDB

    sql.execute("CREATE DATABASE DBFase2;")
    sql.execute("USE DATABASE DBFase2;")
    NombreDB = ts.nameDB
    sql.execute(
        "CREATE TABLE tbProducto(idproducto integer NOT NULL PRIMARY KEY,producto varchar(150) NOT NULL,fechacreacion date NOT NULL,estado integer);"
    )
    sql.execute("CREATE UNIQUE INDEX idx_producto ON tbProducto( idproducto);")
    sql.execute(
        "CREATE TABLE tbCalificacion(idcalifica integer NOT NULL PRIMARY KEY,item varchar(100) NOT NULL,punteo integer NOT NULL);"
    )
    sql.execute(
        "CREATE UNIQUE INDEX idx_califica ON tbCalificacion( idcalifica);")
    sql.execute(
        "INSERT INTO tbProducto VALUES('1.0','Laptop Lenovo','2021-01-08 00:00:00','1.0');"
    )
    sql.execute(
        "INSERT INTO tbProducto VALUES('2.0','Bateria para Laptop Lenovo T420','2021-01-08 00:00:00','1.0');"
    )
    sql.execute(
        "INSERT INTO tbProducto VALUES('3.0','Teclado Inalambrico','2021-01-08 00:00:00','1.0');"
    )
    sql.execute(
        "INSERT INTO tbProducto VALUES('4.0','Mouse Inalambrico','2021-01-08 00:00:00','1.0');"
    )
    sql.execute(
        "INSERT INTO tbProducto VALUES('5.0','WIFI USB','2021-01-08 00:00:00','1.0');"
    )
    sql.execute(
        "INSERT INTO tbProducto VALUES('6.0','Laptop HP','2021-01-08 00:00:00','1.0');"
    )
    sql.execute(
        "INSERT INTO tbProducto VALUES('7.0','Teclado Flexible USB','2021-01-08 00:00:00','1.0');"
    )
    sql.execute(
        "INSERT INTO tbProducto VALUES('8.0','Laptop Samsung','2021-01-02','1.0');"
    )
    n_db = ts.buscarIDTB(NombreDB)
    NuevoSimbolo = TAS.Simbolo(cont, 'myFuncion', TAS.TIPO.FUNCTION, n_db)
    ts.agregar(NuevoSimbolo)
    cont += 1

    sql.execute('SELECT * FROM temp')
    t1 = 2
    pila[0] = t1
    myFuncion()
    t2 = pila[10]

    t3 = 2
    pila[0] = t3
    myFuncion()
    t4 = pila[10]

    sql.execute("UPDATE tbProducto SET estado = " + str(t2) +
                " WHERE  estado =" + str(t4) + ";")

    graphTable(ts)
    report_errors()
    report_BNF()