This repository has been archived on 2021-09-15. You can view files and clone it, but cannot push or open issues or pull requests.
L3GestionParking/src/c/utils/connexionBDD.py

65 lines
1.9 KiB
Python

"""
Module de gestion de la base de Donnée Sqlite
"""
from shutil import copyfile
import sqlite3
## Classe de connexion a la bd
class connexionBDD:
__chemin = "src/m/BDDprojetPython.sq3"
__sql = "src/m/table.sql"
## Construeur de la connexion. Initialise la bd en cas d'inexistance
def __init__(self):
try:
with open(self.__chemin):
pass
except IOError:
self.__conn = sqlite3.connect(connexionBDD.__chemin)
self.__conn.row_factory = sqlite3.Row
self.__cur = self.__conn.cursor()
self.initialisationBDD()
self.__conn = sqlite3.connect(connexionBDD.__chemin)
self.__conn.row_factory = sqlite3.Row
self.__cur = self.__conn.cursor()
## Execute une requete avec des param
# @param req la requete a execute
# @param param un tuple contenant les donnees a inserer dans la requete
def execute(self, req, param=()):
try:
r = self.__cur.execute(req, param)
self.__conn.commit()
except Exception as e:
print (e)
r = None
return r
## Id genere par la derniere requete
# @return Id genere par la derniere requete
def lastId(self):
return self.__cur.lastrowid
## Deconnexion de la BD
def seDeconnecter(self):
self.__cur.close()
self.__conn.close()
## Initialise la BD
def initialisationBDD(self):
with open(self.__sql) as f:
sql = f.read()
self.__conn.executescript(sql)
self.__conn.commit()
## Creer une copie de la bd
# @param path le chemin du fichier de sauvegarde de la bd
@staticmethod
def sauver(path):
copyfile(connexionBDD.chemin, path)
## Charge une copie de la bd
# @param path le chemin du fichier a charger pour la bd
@staticmethod
def charger(path):
copyfile(path, connexionBDD.chemin)