IIC2233 / Syllabus-2017-1

Repositorio oficial del curso IIC2233 Programación Avanzada
https://iic2233.github.io/
16 stars 32 forks source link

Error al modificar elementos de la tabla de consultas (con solución) #290

Closed kaminetzky closed 7 years ago

kaminetzky commented 7 years ago

Hola!

Cuando se envía una consulta mediante el GUI, este se asegura que el formato de la consulta sea válido. Esto significa que el método process_consult va a ser llamado con una lista de listas como argumento querry_array.

Me di cuenta que los elementos de la tabla de consultas son editables, lo que puede traer problemas si se cambia el formato de algún elemento a uno no válido. Cuando esto ocurre, se levanta una excepción del módulo JSON (e.g. json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0), json.decoder.JSONDecodeError: Extra data: line 1 column 9 (char 8)).

Como estas excepciones son levantadas en el archivo Gui.py y están fuera de nuestro alcance, quisiera proponer la opción de hacer la tabla no editable. De esta manera, no ocurrirían los errores al invalidar el formato de una consulta. La solución es sencilla, solo basta agregar la línea self.querry_table.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers) después de la línea 13 del archivo Gui.py. Al agregar esta línea, los elementos de la tabla ya no pueden ser editados por el usuario y, por lo tanto, no es posible que se caiga el programa por invalidar el formato de una consulta.

Muchas gracias!

Hernan4444 commented 7 years ago

@akaminetzkyp Muchas gracias por tu solución, si quieres puedes agregar esa linea en el código pero puedes estar tranquilo que ningún de los correctores va a intentar editar una consulta, la idea no es pillarlos en eso para que su programa explote, de todos modos ya agregamos esa linea en nuestra gui por si acaso. Si advierto que podemos dar consultas que en formato estén bien pero el contenido no para que se ejecute uno de los posibles errores.

Muchas gracias por tu aporte :smile: Saludos!

kaminetzky commented 7 years ago

Súper! Gracias a ustedes! 😄