def _leer_desde_sql(self): registros = [] try: registros = self.cursor.fetchall() except Exception as e: escribir_al_log(e, f'Un error ocurrió al momento de leer desde la BD') return registros
def obtener_documento(self, condicion): documento = None try: documento = self.coleccion.find_one(condicion) except errors.PyMongoError as e: escribir_al_log( e, "Ocurrio un error al obtener el documento de la BD MongoDB") return documento
def insertar_documento(self, datos_documento): nuevo_id = None try: resultado = self.coleccion.insert_one(datos_documento) nuevo_id = resultado.inserted_id except errors.PyMongoError as e: escribir_al_log( e, "Ocurrio un error al insertar el documento a la BD MongoDB") return nuevo_id
def eliminar_documento(self, condicion): eliminacion_exitosa = False try: resultado = self.coleccion.delete_one(condicion) eliminacion_exitosa = resultado.deleted_count > 0 except errors.PyMongoError as e: escribir_al_log( e, "Ocurrio un error al eliminar el documento de la BD MongoDB") return eliminacion_exitosa
def __init__(self, cadena_conexion, base_datos, coleccion): try: self.client = MongoClient(cadena_conexion) self.db = self.client[base_datos] self.coleccion = self.db[coleccion] except errors.ConnectionFailure as e: escribir_al_log( e, f"Ocurrio un error al conectarnos a la BD MongoDB {base_datos}" )
def obtener_documentos(self, condicion): documentos = [] try: respuesta = self.coleccion.find(condicion) documentos = list(respuesta) except errors.PyMongoError as e: escribir_al_log( e, "Ocurrio un error al buscar los documentos en la BD MongoDB") return documentos
def __init__(self, **parametros): try: self.db = connect(host=parametros['direccion_servidor'], user=parametros['usuario'], password=parametros['contrasenia'], database=parametros['base_datos']) self.cursor = self.db.cursor() except Error as e: escribir_al_log(e, "ocurrio un error al conectar a la base de datos")
def actualizar_documento(self, condicion, atributos_cambiar): actualizacion_exitosa = False try: resultado = self.coleccion.update_one(condicion, {'$set': atributos_cambiar}) actualizacion_exitosa = resultado.modified_count > 0 except errors.PyMongoError as e: escribir_al_log( e, "Ocurrio un error al actualizar el documento en la BD MongoDB") return actualizacion_exitosa
def _ejecutar_sql( self, sentencia_sql, parametros=None, escribir_en_bd=True ): try: self.cursor.execute(sentencia_sql, parametros) # execute corre las sentencias sql if escribir_en_bd: self.db.commit() except Exception as e: escribir_al_log(e, f"Ocurrio un error al ejecutar la sentencia SQL:\n\n{sentencia_sql}\n") if escribir_en_bd: self.db.rollback()
def consultar_cabecera_prestamo(self): try: self._ejecutar_sql( "SELECT CASE WHEN max(id_prest) IS NULL THEN 0 ELSE max(id_prest) END AS id_prest FROM PRESTAMO;", escribir_en_bd=False) if self.cursor.rowcount: id_fila = self.cursor.fetchone()[0] return id_fila else: return self.cursor.rowcount except Exception as e: escribir_al_log( e, f'Un error ocurrió al momento de consultar cabecera')
def consultar_estado_libro(self, isbn): try: self._ejecutar_sql("SELECT estado FROM " + self.tabla + f""" WHERE isbn ='{isbn}';""", escribir_en_bd=False) if self.cursor.rowcount: id_fila = self.cursor.fetchone()[0] return id_fila else: return self.cursor.rowcount except Exception as e: escribir_al_log( e, f'Un error ocurrió al momento de consultar registro libro')
def consultar_registro_lector(self, num_tarjeta): try: self._ejecutar_sql("SELECT id_lector FROM " + self.tabla + f""" WHERE num_tarjeta='{num_tarjeta}';""", escribir_en_bd=False) if self.cursor.rowcount: id_fila = self.cursor.fetchone()[0] return id_fila else: return self.cursor.rowcount except Exception as e: escribir_al_log( e, f'Un error ocurrió al momento de consultar registro lector')
def consultar_registro_editorial(self, nombre): try: self._ejecutar_sql("SELECT cod_ed FROM " + self.tabla + f""" WHERE nombre='{nombre}';""", escribir_en_bd=False) if self.cursor.rowcount: id_fila = self.cursor.fetchone()[0] return id_fila else: return self.cursor.rowcount except Exception as e: escribir_al_log( e, f'Un error ocurrió al momento de consultar registro')
def __init__(self, **parametros): try: self.db = connect(host=parametros['direccion_servidor'], user=parametros['usuario'], password=parametros['contrasena'], database=parametros['base_datos']) self.cursor = self.db.cursor() self.tabla = parametros['tabla'] self.campo_condicional = '' except Error as e: escribir_al_log( e, "Ocurrio un error al conectar a la base de datos aqui")
def consultar_prestamo_lector(self, id_lector): try: self._ejecutar_sql(f""" SELECT CAB.id_prest, LIB.isbn, LIB.titulo, DET.est_prest, CAB.fec_solic, DET.fec_devol_max FROM PRESTAMO AS CAB INNER JOIN DETALLE_PRESTAMO AS DET ON CAB.id_prest = DET.id_prest INNER JOIN LIBRO AS LIB ON DET.id_libro = LIB.id_libro WHERE CAB.id_lector={id_lector};""", escribir_en_bd=False) return self._leer_desde_sql() except Exception as e: escribir_al_log( e, f'Un error ocurrió al momento de consultar prestamo por lector' )