示例#1
0
    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})
示例#2
0
    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)
示例#3
0
 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")
示例#4
0
 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)
示例#5
0
 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)
示例#6
0
文件: delete.py 项目: edgarJ91/tytus
    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)
示例#7
0
文件: drop_db.py 项目: edgarJ91/tytus
 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)
示例#8
0
 def execute(self, env):
     print("Se ejecutó la instrucción 'TRUNCATE ó DELETE * FROM'")
     resultado = truncate(env.currentDB, self.tabla.getValue(env))
     Console.add(resultado)
示例#9
0
 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))
示例#10
0
文件: show_db.py 项目: edgarJ91/tytus
 def execute(self, env):
     print("Se ejecutó la instrucción 'SHOW DATABASE'")
     resultado = showDatabases()
     #print(self.expression.getValue(env))
     Console.add(resultado)
示例#11
0
 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)