def execute(self): Console.clear() data = self.entradaEditor.text.get("1.0", END) root = ascparse.parse(data) AST = Ast(root) AST.execute() AST.getGraph()
def execute(self, env): print("Se ejecutó la instrucción 'CREATE TABLE'") tableName = self.exp1.getValue(env) table = {} pkList = [] for attr in self.attributesList: for key in attr: if key == 'len': attr[key] = attr[key].getValue(env) elif key == 'pk': index = self.attributesList.index(attr) pkList.append(index) table[attr['id']] = attr symbol = (attr['id'], attr['type'], tableName) SymbolTable.add(symbol) result = createTable(env.currentDB, tableName, len(self.attributesList)) Console.add('CREATE TABLE: %s' % result) if (len(pkList) != 0): result = alterAddPK(env.currentDB, tableName, pkList) Console.add('ALTER ADD PK: %s' % result) env.addTable(env.currentDB, {tableName: table})
def execute(self, env): print("Se ejecutó la instrucción 'SELECT'") value = self.expression.getValue(env) col = self.getAsColumn(value) header = col[0] table = [col[1]] strTable = tabulate(table, headers=header, tablefmt="psql") Console.add(strTable)
def execute(self, env): #Se debe evaluar que tipo de DROP viene: DROP COLUMN, DROP CONSTRAINT if self.accion == 'COLUMN': print("Se ejecutó la instrucción 'ALTER TABLE DROP COLUMN'") resultado = alterDropColumn(env.currentDB, self.tabla.getValue(env), self.columnNumber.getValue(env)) Console.add(resultado) elif self.accion == 'CONSTRAINT': print("Se ejecutó un DROP CONSTRAINT")
def execute(self, env): print("Se ejecutó la instrucción 'ALTER TABLE ADD'") #Aqui se deben validar las acciones #Las acciones pueden ser #aqui se debe evaluar la acción relacionada al alter #Acciones: ADD CHECK, ADD CONSTRAINT, ADD FOREIGN KEY print("Se ejecutó una función ADD COLUMN.") resultado = alterAddColumn(env.currentDB, self.tabla.getValue(env), self.default.getValue(env)) Console.add(resultado)
def execute(self, env): print("Se ejecutó la instrucción 'ALTER TABLE'") #aqui se debe evaluar la acción relacionada al alter #Acciones: RENAME SIMPLE O RENAME COLUMN if self.accion == 'COLUMN': print("Se ejecutó la función RENAME COLUMN") elif self.accion == 'TO': print("Se ejecutó la función RENAME TO") resultado = alterTable(env.currentDB, self.exp1.getValue(env), self.exp2.getValue(env)) Console.add(resultado)
def execute(self, env): print("Se ejecutó la instrucción 'DELETE'") #Lista 'registros' de prueba, remplazarla por la tabla enviada del where registros = [[{ 'idusuario': { 'id': 'idusuario', 'type': 'integer', 'not_null': True, 'pk': True } }, { 'nombre': { 'id': 'nombre', 'type': 'string', 'not_null': True, 'pk': True } }, { 'direccion': { 'id': 'direccion', 'type': 'string', 'not_null': True, 'pk': False } }], [['1', 'Brayan', 'guate'], ['2', 'Glendy', 'guate'], ['3', 'otro', 'guate']]] listpk = [] #Lista de llave o llaves primarias de la tabla [0,1] cont = 0 for dicc1 in registros[0]: #accedemos a la lista for atributo, dicc2 in dicc1.items( ): #acedemos a cada clave del diccionario: idusuario, nombre, dirección for elem, valor in dicc2.items( ): #accedemos a cada clave y valor de cada diccionario: id,idusuario,type,integer... if (elem == 'pk' and valor == True): listpk.append(cont) cont = cont + 1 cont2 = 0 for elem in registros[1]: listdel = [] #Lista de llave o llaves a eliminar for elem2 in listpk: listdel.append(registros[1][cont2][elem2]) cont2 = cont2 + 1 resultado = delete(env.currentDB, self.tabla.getValue(env), listdel) #Funcion eleiminar Console.add(resultado)
def __init__(self): self.window = Tk() self.window.title("Query Tool") self.window.minsize(900, 600) # MENÚ 'Principal': main_menu = Menu(self.window) self.window['menu'] = main_menu main_menu.add_command(label='Abrir', command=self.open, underline=0, accelerator="Ctrl+a", compound=LEFT) main_menu.add_command(label='Ejecutar', command=self.execute, underline=0, accelerator="Ctrl+r", compound=LEFT) # INPUT: self.notebook = ttk.Notebook(self.window, height="350", width="900") self.notebook.pack() # Editor de texto frame = tkinter.Frame(self.notebook, bg='white') self.notebook.add(frame, text="Entrada") self.entradaEditor = EntradaEditor(frame) # OUTPUT: self.out = ttk.Notebook(self.window, height="185", width="900") self.out.pack() # Consola frame = tkinter.Frame(self.out, bg='white') self.out.add(frame, text="Consola") Console.create(frame) # Tabla de reporte de errores frame = tkinter.Frame(self.out, bg='white') self.out.add(frame, text="Reporte de errores") ErrorTable.create(frame) # Tabla de simbolos frame = tkinter.Frame(self.out, bg='white') self.out.add(frame, text="Tabla de Símbolos") SymbolTable.create(frame) """ initInput = "./Scripts/Consultas.sql" data = open(initInput).read() self.entradaEditor.text.insert(END, data + "\n") """ self.window.mainloop()
def execute(self, env): print("Se ejecutó la instrucción 'DROP DATABASE'") resultado = dropDatabase(self.expression.getValue(env)) #print(self.expression.getValue(env)) Console.add(resultado)
def execute(self, env): print("Se ejecutó la instrucción 'TRUNCATE ó DELETE * FROM'") resultado = truncate(env.currentDB, self.tabla.getValue(env)) Console.add(resultado)
def execute(self, env): print("Se ejecutó la instrucción 'DROP TABLE'") resultado = dropTable(env.currentDB, self.expression.getValue(env)) Console.add(resultado) Console.add(self.expression.getValue(env))
def execute(self, env): print("Se ejecutó la instrucción 'SHOW DATABASE'") resultado = showDatabases() #print(self.expression.getValue(env)) Console.add(resultado)
def execute(self, env): print("Se ejecutó la instrucción 'ALTER DATABASE'") resultado = alterDatabase(self.exp1.getValue(env), self.exp2.getValue(env)) # print(self.expression.getValue(env)) Console.add(resultado)