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"""
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"""
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)
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)
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]
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"""
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))
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"""
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"""
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"""
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"""
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)
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()