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