-
Notifications
You must be signed in to change notification settings - Fork 0
/
Creation_bdd.py
80 lines (65 loc) · 3.06 KB
/
Creation_bdd.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import sqlite3
import glob
class Bdd():
def __init__(self,nom_BDD,nom_table):
self.nomBDD=nom_BDD
self.nom_table=nom_table
self.dict_col={'Nom': 'ID', 'Type': 'INTEGER'}
self.listingCol=[self.dict_col]
# Ici c'est la classe mère, pourvue d'une méthode pour initialiser
# la création de la BDD et créer les différentes tables.
def creation(self):
conn = sqlite3.connect(self.nomBDD)
c = conn.cursor()
c.execute('CREATE TABLE {tn} ({nf} {ft})'\
.format(tn=self.nom_table, nf=self.dict_col['Nom'], ft=self.dict_col['Type']))
conn.commit()
conn.close()
# c'est la méthode qui sert à créer la BDD et à ajouter une table ou à juste ajouter une table à une BDD
# existante
class modifBDD(Bdd):
def __init__(self,nom_BDD,nom_table):
super().__init__(nom_BDD,nom_table)
self.nmbrNewCol=1
# Cette classe hérite de BDD, elle sert à ajouter dans une table des colonnes, à les initialiser et à en
# modifier les valeurs
def ajoutColonne(self,nom,type,def_val=0.0):
conn = sqlite3.connect(self.nomBDD)
c = conn.cursor()
c.execute("ALTER TABLE {tn} ADD COLUMN '{cn}' {ct} DEFAULT '{df}'".\
format(tn=self.nom_table, cn=str(nom), ct=str(type), df=def_val))
conn.commit()
conn.close()
self.dict_col['Nom'+str(self.nmbrNewCol)]=str(nom)
self.dict_col['Type'+str(self.nmbrNewCol)]=str(type)
self.nmbrNewCol+=1
# Ajoute des colonnes ayant un nom, un type SQL, et une valeur par défaut
def insertion(self,IDentifiant,Colonne,Val):
conn = sqlite3.connect(self.nomBDD)
c = conn.cursor()
c.execute("INSERT OR IGNORE INTO {tn} ({idf}, {cn}) VALUES ({id}, {val})".\
format(tn=self.nom_table, idf='ID', cn=Colonne, id=IDentifiant, val=Val))
conn.commit()
conn.close()
# Initialise une entrée (caractérisé par son ID) dans la colonne Colonne avec la valeur Val
def update(self,IDentifiant,Colonne,Val):
conn = sqlite3.connect(self.nomBDD)
c = conn.cursor()
if type(Val)==float:
c.execute('''UPDATE {tn}
SET {cln}=({val})
WHERE {idf}={id}'''.\
format(tn=self.nom_table,cln=str(Colonne), val=float(Val), idf='ID', id=int(IDentifiant)))
elif type(Val)==int:
c.execute('''UPDATE {tn}
SET {cln}=({val})
WHERE {idf}={id}'''.\
format(tn=self.nom_table, cln=str(Colonne), val=int(Val),idf='ID',id=int(IDentifiant)))
else:
c.execute('''UPDATE {tn}
SET {cln}=('{val}')
WHERE {idf}={id}'''.\
format(tn=self.nom_table, cln=str(Colonne), val=(Val), idf='ID',id=int(IDentifiant)))
conn.commit()
conn.close()
# Sert à modifier la valeur d'une colonne pour un identifiant donné déjà initialisé