Пример #1
0
    def seleccionar_registros(self, columnas, tablas, condicion, ordenador):
        # Crear tabla contenedora
        temp = Tabla('SELECT', self)
        temp.setRegistros([Registro(temp)])
        tblSet = set()
        for tbl in tablas:
            if not tbl in tblSet:
                tbl = tbl.lower()
                tabla = self.verificar_tabla(tbl)
                temp.producto_cartesiano(tabla)
                tblSet.add(tbl)

        # Evaluar condicion
        # Verificar que sea válida
        if condicion != None:
            temp.verificar_condicion(condicion[1])
            temp.evaluar_condicion(condicion[1])

        # Ordenar
        if ordenador != None:
            for i in xrange(len(ordenador[1]) - 1, -1, -1):
                orden = ordenador[1][i]

                # Validar orden
                temp.verificar_condicion(orden[0])
                tipoOrden = "ASC" if len(orden) < 2 else str(orden[1])

                # Ordenar
                temp.ordenar_registros(orden[0], tipoOrden)

        # Filtrar por columnas seleccionadas
        if columnas[0] != '*':
            mostrar_columnas = [
                temp.verificar_columna(columna) for columna in columnas
            ]
        else:
            mostrar_columnas = None

        resp = temp.toString(mostrar_columnas)

        # Regresar respuesta
        self.log.info('\n' + str(resp) +
                      "\n\nSe han seleccionado '%.i' registros" %
                      temp.getCantidadRegistros())
Пример #2
0
 def seleccionar_registros(self, columnas, tablas, condicion, ordenador):
     # Crear tabla contenedora
     temp = Tabla('SELECT', self)
     temp.setRegistros([Registro(temp)])
     tblSet = set()
     for tbl in tablas:
         if not tbl in tblSet:
             tbl = tbl.lower()
             tabla = self.verificar_tabla(tbl)
             temp.producto_cartesiano(tabla)
             tblSet.add(tbl)
             
     # Evaluar condicion
     # Verificar que sea válida
     if condicion != None:
         temp.verificar_condicion(condicion[1])
         temp.evaluar_condicion(condicion[1])
     
     # Ordenar
     if ordenador != None:
         for i in xrange(len(ordenador[1]) -1, -1, -1):
             orden = ordenador[1][i]
             
             # Validar orden
             temp.verificar_condicion(orden[0])
             tipoOrden = "ASC" if len(orden) < 2 else str(orden[1])
             
             # Ordenar
             temp.ordenar_registros(orden[0], tipoOrden)
             
     
     # Filtrar por columnas seleccionadas
     if columnas[0] != '*':
         mostrar_columnas = [temp.verificar_columna(columna) for columna in columnas]
     else: 
         mostrar_columnas = None
             
     resp = temp.toString(mostrar_columnas)
         
     # Regresar respuesta
     self.log.info('\n' + str(resp) + "\n\nSe han seleccionado '%.i' registros" % temp.getCantidadRegistros())