Пример #1
0
    def select_rows(self, requete_select_mysql):
        """
        Méthode qui permet d'afficher le contenu de la BD selon la requête SELECT.
        OM 2020.03.26
                Parametres:
                        requete_select_mysql (class 'str'): la requête SELECT MySql
                Retourne:
                        pas de valeurs
        """
        try:
            # OM 2020.01.28 CONNECTION A LA BD
            self.connection_dbc = connect_db.DatabaseTools()
            # Un simple test qui renvoie un message dans la console suivant l'état de la BD
            self.connection_dbc.is_connection_open()

            # OM 2020.03.11 Execute la requête
            self.connection_dbc.DBcursor.execute(requete_select_mysql)
            # Retourne les résultats de la requête
            data_select = self.connection_dbc.DBcursor.fetchall()
            return data_select
            self.connection_dbc.DBcursor.close()

        except Exception as erreur:
            # OM 2020.03.01 Message en cas d'échec du bon déroulement des commandes ci-dessus.
            print("error message: {0}".format(erreur))
        finally:
            # On ferme le curseur et la base de donnée et on affiche un message dans la console.
            self.connection_dbc.DBcursor.close()
            self.connection_dbc.close_connection()
            print("DBcursor et DB fermés")
Пример #2
0
    def update_one_record_one_table(self, requete_update_mysql,
                                    valeurs_update):
        """
        Méthode qui permet de mettre à jour une ligne d'une table.
        OM 2020.03.26
                Parametres:
                        requete_update_mysql (class 'str'): la requête UPDATE MySql
                        valeurs_update (class 'int'): valeurs pour la mise à jour
                Retourne:
                        pas de valeurs
        """
        try:
            # OM 2020.01.28 CONNECTION A LA BD
            self.connection_dbc = connect_db.DatabaseTools()
            # Un simple test qui renvoie un message dans la console suivant l'état de la BD
            self.connection_dbc.is_connection_open()

            # Pour aider à comprendre les types de données on affiche dans la console.
            print("type >>> requete_update_mysql ", type(requete_update_mysql),
                  requete_update_mysql)
            print("type >>> valeurs_update ", type(valeurs_update),
                  valeurs_update)
            # Afficher les docstrings...très importantes pour votre projet.
            print(self.update_one_record_one_table.__doc__)

            # OM 2020.03.11 Execute la requête avec un passage de paramètres
            self.connection_dbc.DBcursor.execute(requete_update_mysql,
                                                 valeurs_update)
            # OM 2020.03.11 L'instruction suivante est indispensable pour confirmer l'effacement des données (en cas de problèmes : rollback)
            self.connection_dbc.db.commit()
            self.connection_dbc.DBcursor.close()
        except pymysql.Error as error:
            # OM 2020.03.11 L'instruction suivante est indispensable pour confirmer l'effacement des données (en cas de problèmes : rollback)
            self.connection_dbc.db.rollback()
            print(" Il y a une ERREUR : %s", error)
            print("connection_dbc.db.rollback() insertOneRecord")
        except pymysql.DataError as error1:
            # OM 2020.03.11 L'instruction suivante est indispensable pour confirmer l'effacement des données (en cas de problèmes : rollback)
            self.connection_dbc.db.rollback()
            print(" Il y a une DataError : %s", error1)
            print("connection_dbc.db.rollback() insertOneRecord")
        except pymysql.DatabaseError as error2:
            # OM 2020.03.11 L'instruction suivante est indispensable pour confirmer l'effacement des données (en cas de problèmes : rollback)
            self.connection_dbc.db.rollback()
            print(" Il y a une DatabaseError : %s", error2)
            print("connection_dbc.db.rollback() insertOneRecord")
        except pymysql.Warning as error3:
            # OM 2020.03.11 L'instruction suivante est indispensable pour confirmer l'effacement des données (en cas de problèmes : rollback)
            self.connection_dbc.db.rollback()
            print(" Il y a une Warning : %s", error3)
            print("connection_dbc.db.rollback() insertOneRecord")
        except pymysql.MySQLError as error4:
            # OM 2020.03.11 L'instruction suivante est indispensable pour confirmer l'effacement des données (en cas de problèmes : rollback)
            self.connection_dbc.db.rollback()
            print(" Il y a une MySQLError : %s", error4)
            print("connection_dbc.db.rollback() insertOneRecord")
        except pymysql.IntegrityError as error5:
            # OM 2020.03.11 L'instruction suivante est indispensable pour confirmer l'effacement des données (en cas de problèmes : rollback)
            self.connection_dbc.db.rollback()
            print(" Il y a une IntegrityError : %s", error5)
            print("connection_dbc.db.rollback() insertOneRecord")
        except:
            # OM 2020.03.11 L'instruction suivante est indispensable pour confirmer l'effacement des données (en cas de problèmes : rollback)
            self.connection_dbc.db.rollback()
            print("Unknown error occurred")
        finally:
            # On ferme le curseur et la base de donnée et on affiche un message dans la console.
            self.connection_dbc.DBcursor.close()
            self.connection_dbc.close_connection()
            print("DBcursor et DB fermés")
    def insert_one_record_many_values_one_table(self, requete_insert_mysql,
                                                valeurs_insertion):
        """
        Méthode qui permet d'insérer les valeurs passées en paramètres.
        OM 2020.03.24
                Parametres:
                        requete_insert_mysql (class 'str'): une classe string
                        valeurs_insertion (class 'dict'): une classe dictionnaire
                Retourne:
                        pas de valeurs
        """
        try:
            # OM 2020.01.28 CONNECTION A LA BD
            self.connection_dbc = connect_db.DatabaseTools()
            # Un simple test qui renvoie un message dans la console suivant l'état de la BD
            self.connection_dbc.is_connection_open()

            # Pour aider à comprendre les types de données on affiche dans la console.
            print("type >>> requete_insert_mysql ", type(requete_insert_mysql))
            print("type >>> valeurs_insertion ", type(valeurs_insertion))
            # Afficher les docstrings...très importantes pour votre projet.
            print(self.insert_one_record_many_values_one_table.__doc__)

            # OM 2020.03.11 Execute la requête avec un passage de paramètres
            self.connection_dbc.DBcursor.execute(requete_insert_mysql,
                                                 valeurs_insertion)

            # OM 2020.03.11 L'instruction suivante est indispensable pour confirmer l'insertion des données (en cas de problèmes : rollback)
            self.connection_dbc.db.commit()

        except pymysql.Error as error:
            # OM 2020.03.11 L'instruction suivante est indispensable pour annuler l'insertion des données (commande opposée : COMMIT)
            self.connection_dbc.db.rollback()
            print(" Il y a une ERREUR : %s", error)
            print("connection_dbc.db.rollback() insertOneRecord")
        except pymysql.DataError as error1:
            # OM 2020.03.11 L'instruction suivante est indispensable pour annuler l'insertion des données (commande opposée : COMMIT)
            self.connection_dbc.db.rollback()
            print(" Il y a une DataError : %s", error1)
            print("connection_dbc.db.rollback() insertOneRecord")
        except pymysql.DatabaseError as error2:
            # OM 2020.03.11 L'instruction suivante est indispensable pour annuler l'insertion des données (commande opposée : COMMIT)
            self.connection_dbc.db.rollback()
            print(" Il y a une DatabaseError : %s", error2)
            print("connection_dbc.db.rollback() insertOneRecord")
        except pymysql.Warning as error3:
            # OM 2020.03.11 L'instruction suivante est indispensable pour annuler l'insertion des données (commande opposée : COMMIT)
            self.connection_dbc.db.rollback()
            print(" Il y a une Warning : %s", error3)
            print("connection_dbc.db.rollback() insertOneRecord")
        except pymysql.MySQLError as error4:
            # OM 2020.03.11 L'instruction suivante est indispensable pour annuler l'insertion des données (commande opposée : COMMIT)
            self.connection_dbc.db.rollback()
            print(" Il y a une MySQLError : %s", error4)
            print("connection_dbc.db.rollback() insertOneRecord")
        except pymysql.IntegrityError as error5:
            # OM 2020.03.11 L'instruction suivante est indispensable pour annuler l'insertion des données (commande opposée : COMMIT)
            self.connection_dbc.db.rollback()
            print(" Il y a une IntegrityError : %s", error5)
            print("connection_dbc.db.rollback() insertOneRecord")
        except:
            # OM 2020.03.11 L'instruction suivante est indispensable pour annuler l'insertion des données (commande opposée : COMMIT)
            self.connection_dbc.db.rollback()
            print("Unknown error occurred")
        finally:
            # On ferme le curseur et la base de donnée et on affiche un message dans la console.
            self.connection_dbc.DBcursor.close()
            self.connection_dbc.close_connection()
            print("DBcursor et DB fermés")