def _accion(self): validos = False if self._revisar: self._prepararCampos() validos = self._validarCampos() errorNumero = 0 if validos or not self._revisar: self._conexion.reconnect() consulta = self._crearConsulta() try: ConectarMysql.ejecutar(AccionMysql._conexion, consulta) except Exception as error: self._resetearAutoIncremento() errorNumero = error.errno if errorNumero == errorcode.ER_DUP_ENTRY: # entrada duplicada ErrorCampoModal.errorDuplicado(error.msg) elif errorNumero == errorcode.ER_ROW_IS_REFERENCED_2: # fk_id en uso ErrorCampoModal.campoReferenciado(error.msg) else: ErrorCampoModal.errorDesconocido(error.msg) # fin if entrada duplicada else: ErrorCampoModal.correcto() finally: self._conexion.close() # fin try ejecutar if errorNumero == 0: self.close()
def _realizarAccion(self): ''' Realiza la acción CRUD pertinente. ''' for fila in range(len(self._registros)): hijos = self.tablaRegistros.cellWidget(fila, 0).children() checkeo = hijos[1].isChecked() if self._esCorrecto(checkeo): VentanaInsertarCampoRegistros._conexion.reconnect() cadena = self._crearConsulta(fila) ConectarMysql.ejecutar(VentanaInsertarCampoRegistros._conexion, cadena) VentanaInsertarCampoRegistros._conexion.close() # fin if # fin for self.close()
def __init__(self): try: if ConexionMysql._conexion is None: # con ConexionMysql._conexion queda claro que es el atributo static ConexionMysql._conexion = ConectarMysql.conectar() # con 'self._conexion =' crea el atributo de la instancia except: raise ConnectionError else: if ConexionMysql._conexion.is_connected(): ConexionMysql._conexion.close()
return PrepararInputs.quitarEspaciosCentrales(consulta) # fin _crearConsulta # fin VentanaEditarCargo if __name__ == "__main__": try: app = QtWidgets.QApplication([]) id = 1 ventana = VentanaEditarCargo(id) ventana.show() app.exec_() try: conexion = ConectarMysql.conectar() id = 11 lista = SeleccionarCargos.obtenerCargo(conexion, id) conexion.close() if len(lista) == 0: raise ValueError print(lista) print(lista[0][0]) except ValueError: ErrorCampoModal.errorNoRegistro(id) except ConnectionError: ErrorCampoModal.errorConexion() except ValueError: ErrorCampoModal.errorNoRegistro(id) except ConnectionError: ErrorCampoModal.errorConexion()
def _resetearAutoIncremento(self): ''' Resetea el ID autoincremental. ''' consulta = "ALTER TABLE casos AUTO_INCREMENT = 1" ConectarMysql.ejecutar(VentanaAccionMysql._conexion, consulta)