Commit 69188697 authored by Evenson Jeunesse's avatar Evenson Jeunesse
Browse files

Delete prog.py

parent 149c0b27
#!/usr/bin/python3
# http://initd.org/psycopg/docs/usage.html
import psycopg2 as pg
HOST = "tuxa.sme.utc"
USER = "bdd0p071"
PASSWORD = "MFyllo2A"
DATABASE = "dbbdd0p071"
# Open connection
conn = pg.connect("host=%s dbname=%s user=%s password=%s" % (HOST, DATABASE, USER, PASSWORD))
# Open a cursor to send SQL commands
cur = conn.cursor()
# Execute a SQL SELECT command
sql = "SELECT * FROM t"
cur.execute(sql)
# Fetch data line by line
raw = cur.fetchone()
while raw:
print (raw[0])
print (raw[1])
raw = cur.fetchone()
#////////// BOUCLE PRINCIPALE /////////////////
# Close connection
conn.close()
"""
def Execute(sql) :
print("SQL : "+sql)
try:
cur.execute(sql)
except pg.Error as E:
print(E.pgerror)
conn.rollback()
return False
conn.commit()
return True
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
BASIC FUCNTIONS SECTION
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
"""
###########INSERT##############""
def insertExecute(sql):
try:
print(sql)
cur.execute(sql)
except pg.Error as E:
print(E.pgerror)
conn.rollback()
return False
conn.commit()
return True
#Cette fonction parcourt une table avec un id et renvoit l'id le plus grand
def searchId(nomTable):
sql = "SELECT MAX(id) FROM %s;" %(nomTable)
try:
print(sql)
cur.execute(sql)
except pg.Error as E:
print(E.pgerror)
conn.rollback()
return False
try :
raw = cur.fetchone()
if raw:
while raw:
print (raw[0])
return (raw[0])
raw = cur.fetchone() #renvoit l'id le plus grand de la table s'il existe
else:
print("Empty table")
conn.commit()
except pg.Error as E:
print(E.pgerror)
conn.rollback()
def insertClasses() :
nomClasse = input("quelle est le nom de la classe que vous souhaitez ajouter ?\n")
sql = "INSERT INTO Classes(nom) VALUES ('%s');" %(nomClasse)
if insertExecute(sql) :
print ("Success")
return 1
else : return 0
def insertEspece() :
nomEspece = input("quelle est le nom de l espece que vous souhaitez ajouter ?\n")
nomClasse = input("quelle est le nom de la classe que vous souhaitez ajouter ?\n")
sql = "INSERT INTO Especes(nom, classe) VALUES ('%s','%s');" %(nomEspece,nomClasse)
if insertExecute(sql) :
print ("Success")
return 1
else : return 0
def insertClient():
#recherche du client_id le plus grand
id = searchId("Clients")
if id : id += 1 # s'il existe un id le plus grand, on créé le nouvel id
else : return False
nom = input("quelle est le nom du client ?\n")
prenom = input("quelle est le prenom du client ?\n")
dateNaissance = input("quelle est la date de naissance du client ? (format YYYY-MM-DD)\n")
adresse = input("quelle est l adresse du client ?\n")
telephone = input("quelle est le telephone du client ?\n")
sql = "INSERT INTO Clients (id, nom, prenom, date_naissance, adresse, telephone) VALUES (%s,'%s','%s','%s','%s',%s);" %(id,nom,prenom,dateNaissance,adresse,telephone)
if insertExecute(sql) :
print ("Success")
return 1
else : return 0
def insertVeterinaires():
#recherche du client_id le plus grand
id = searchId("Veterinaires")
if id : id += 1 # s'il existe un id le plus grand, on créé le nouvel id
else : return False
nom = input("quelle est le nom du veterinaire ?\n")
prenom = input("quelle est le prenom du veterinaire ?\n")
dateNaissance = input("quelle est la date de naissance du veterinaire ? (format YYYY-MM-DD)\n")
adresse = input("quelle est l adresse du veterinaire ?\n")
specialite = input("quelle est la classe de specialite du veterinaire ?\n")
telephone = input("quelle est le telephone du veterinaire ?\n")
sql = "INSERT INTO Veterinaires (id, nom, prenom, date_naissance, adresse, specialite, telephone) VALUES (%s,'%s','%s','%s','%s','%s',%s);" %(id,nom,prenom,dateNaissance,adresse,specialite,telephone)
if insertExecute(sql) :
print ("Success")
return 1
else : return 0
def insertAssistants():
#recherche du client_id le plus grand
id = searchId("Assistants")
if id : id += 1 # s'il existe un id le plus grand, on créé le nouvel id
else : return False
nom = input("quelle est le nom de l assistant ?\n")
prenom = input("quelle est le prenom de l assistant ?\n")
dateNaissance = input("quelle est la date de naissance de l assistant ? (format YYYY-MM-DD)\n")
adresse = input("quelle est l adresse de l assistant ?\n")
specialite = input("quelle est la classe de specialite de l assistant ?\n")
telephone = input("quelle est le telephone de l assistant ?\n")
sql = "INSERT INTO Assistants (id, nom, prenom, date_naissance, adresse, specialite, telephone) VALUES (%s,'%s','%s','%s','%s','%s',%s);" %(id,nom,prenom,dateNaissance,adresse,specialite,telephone)
if insertExecute(sql) :
print ("Success")
return 1
else : return 0
def insertAnimal(nom, dernierPoids, dernierTaille, dateNaissance, espece)
def insertProprietaire(client_id, animal_id)
def insertMedicament(nomMolecule, effets)
def insertAutorise(medicament_id, espece_id)
def insertTraitement(nom, debut, duree, veterinaire_id, animal_id)
def insertPrescription(traitement_id, medicament_id, quantite)
def insertAnimal(name)
def updateClass(nom, new_nom) :
sql = "UPDATE Classes SET nom='{}' WHERE nom='{}'".format(new_nom, nom)
if Execute(sql):
print("Classe "+nom+" has been change in "+new_nom)
return True
print("An error occurs, please try again...")
return False
def updateEspece(classe, nom, new_classe, new_nom):
sql = "UPDATE Especes SET classe='{}', nom='{}' WHERE classe='{}' AND nom='{}';".format(new_classe,new_nom, classe, nom)
if Execute(sql):
print("Espece updated successfully")
return True
print("An error occurs, please try again...")
return False
def updateClient(idClient, nom, prenom, dateNaissance, adresse, telephone):
sql = "UPDATE Clients SET nom='{}', prenom='{}', date_naissance=TO_DATE('{}', 'YYYY-MM-DD'), adresse='{}', telephone={} WHERE id={}".format( nom, prenom, dateNaissance, adresse, telephone, idClient)
if Execute(sql):
print("Client updated successfully")
return True
print("An error occurs, please try again...")
return False
def updatePersonnel(idPersonnel, nom, prenom, dateNaissance, adresse, telephone, specialite, isVeterinaire) :
table = 'Assistants'
if isVeterinaire :
table = 'Veterinaires'
sql = "UPDATE {} SET nom='{}', prenom='{}', date_naissance=TO_DATE('{}', 'YYYY-MM-DD'), adresse='{}', telephone={}, specialite='{}' WHERE id={}".format(table, nom, prenom, dateNaissance, adresse, telephone,specialite, idPersonnel)
if Execute(sql):
if isVeterinaire :
print("Veterinaire updated successfully")
else:
print("Assistant updated successfully")
return True
print("An error occurs, please try again...")
return False
def updateAnimal(idAnimal, nom='nom', dernierPoids='dernierPoids', derniereTaille='derniereTaille', dateNaissance='date_naissance', espece='espece') :
if nom != 'nom':
nom = "'"+nom+"'"
if espece != 'espece':
espece = "'"+espece+"'"
sql = "UPDATE Animaux SET nom={}, dernierPoids={}, derniereTaille={}, date_naissance={}, espece={} WHERE id={}".format(nom, dernierPoids, derniereTaille, dateNaissance, espece, idAnimal)
if Execute(sql):
print("Animal updated successfully")
return True
print("An error occurs, please try again...")
return False
def updateProprietaire(client_id, animal_id, new_client_id='client', new_animal_id='animal') :
sql = "UPDATE Proprietaires SET client={}, animal={} WHERE client={} AND animal={}".format(new_client_id, new_animal_id, client_id, animal_id)
if Execute(sql):
print("Proprietaire updated successfully")
return True
print("An error occurs, please try again...")
return False
def updateAutorise(medicament, espece, new_medicament='medicament', new_espece='espece'):
if new_medicament != 'medicament':
new_medicament = "'"+new_medicament+"'"
if new_espece != 'espece':
new_espece = "'"+new_espece+"'"
sql = "UPDATE Autorise SET medicament={}, espece={} WHERE medicament='{}' AND espece='{}'".format(new_medicament, new_espece, medicament, espece)
if Execute(sql):
print("Autorisation updated successfully")
return True
print("An error occurs, please try again...")
return False
def updateMedicament(nomMolecule, effets)
def updateTraitement(nom, debut, duree, veterinaire_id, animal_id)
def updatePrescription(traitement_id, medicament_id, quantite)
def updateAnimal(name)
def ExecuteList(sqls) :
for sql in sqls:
print('SQL: ' + sql)
try:
cur.execute(sql)
except pg.Error as E:
print(E.pgerror)
conn.rollback()
return False
conn.commit()
return True
def deleteClass(nom):
sql = "DELETE FROM Classes WHERE nom='{}';".format(nom)
if(Execute(sql)):
print("Delete Classe Succes")
else:
print("Delete Classe Fail")
def deleteEspece(nom):
sql = "DELETE FROM Especes WHERE nom='{}';".format(nom)
if(Execute(sql)):
print("Delete Espece Succes")
else:
print("Delete Espece Fail")
def deleteClient(idClient):
sql = "DELETE FROM Clients WHERE id={};".format(idClient)
if(Execute(sql)):
print("Delete Client Succes")
else:
print("Delete Client Fail")
def deletePersonnel(idPersonnel, isVeterinaires):
table = 'Assistants'
if(isVeterinaires):
table = 'Veterinaires'
sql = "DELETE FROM {} WHERE id={};".format(table, idPersonnel)
if(Execute(sql)):
print("Delete {} Succes".format(table))
else:
print("Delete Veterinaire Fail")
def deleteAnimal(idAnimal):
sqls = []
sqls.append("DELETE FROM Proprietaires WHERE animal={}".format(idAnimal))
sqls.append("DELETE FROM Traitements WHERE animal={}".format(idAnimal))
sqls.append("DELETE FROM Animaux WHERE id={};".format(idAnimal))
if(ExecuteList(sqls)):
print("Delete Animal Succes")
else:
print("Delete Animal Fail")
def deleteProprietaire(idClient, idAnimal):
sql = "DELETE FROM Proprietaires WHERE client={} AND animal={};".format(idClient, idAnimal)
if(Execute(sql)):
print("Delete Proprietaire Succes")
else:
print("Delete Proprietaire Fail")
def deleteMedicament(nomMolecule):
sql = "DELETE FROM Medicaments WHERE nomMolecule='{}';".format(nomMolecule)
if(Execute(sql)):
print("Delete Medicament Succes")
else:
print("Delete Medicament Fail")
def deleteAutorise(nomMolecule, nomEspece):
sql = "DELETE FROM Autorises WHERE medicament='{}' AND espece='{}';".format(nomMolecule, nomEspece)
if(Execute(sql)):
print("Delete Autorise Succes")
else:
print("Delete Autorise Fail")
def deleteTraitement(idTraitement):
sql = "DELETE FROM Traitements WHERE id={};".format(idTraitement)
if(Execute(sql)):
print("Delete Traitement Succes")
else:
print("Delete Traitement Fail")
def deletePrescription(idTraitement, nomMolecule):
sql = "DELETE FROM Prescriptions WHERE traitement={} AND medicament='{}';".format(idTraitement, nomMolecule)
if(Execute(sql)):
print("Delete Prescription Succes")
else:
print("Delete Prescription Fail")
"""
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
CONTROLLER FUCNTIONS SECTION
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
"""
def afficherSql(conn,sql):
try:
cur=conn.cursor()
cur.execute(sql)
except pg.Error as e:
print("Execute: ",e)
conn.rollback()
return
# Fetch data line by line
try:
raw = cur.fetchone()
if raw:
print('*'*30)
while raw:
for i in raw:
print(i,end=", ")
print("")
raw = cur.fetchone()
print('*'*30)
else:
print("Empty table")
conn.commit()
except pg.Error as e:
print("Fetch error", e)
conn.rollback()
def afficherStatistique(conn):
sql=""
while True:
choix=0
print('*'*30)
print("1.Selection des prescriptions d'un animal (pas demandé mais aide à l'analyse de la statistique")
print("2.Statistique medicament pour un animal")
print("3.Statistique quantite prescrite pour un medicament particulier")
print("4.Poids moyen par espèce ")
print("5.Taille moyenne par espèce ")
print("6.Quitter")
print('*'*30)
choix=int(input())
if (choix==1):
id=input("Entrez ID d'animal: ");
sql="SELECT P.medicament, P.quantite FROM Prescriptions P, Traitements T WHERE T.animal = "+str(id)+" AND P.traitement = T.id"
elif(choix==2):
id=input("Entrez ID d'animal: ");
sql="SELECT P.medicament, SUM(P.quantite) FROM Traitements T, Prescriptions P WHERE T.animal = "+str(id)+ "AND P.traitement = T.id GROUP BY P.medicament"
elif(choix==3):
nomMolecule=input("Entrez nom de molecule: ");
sql="SELECT SUM(P.quantite) AS quantite_prescrite FROM Prescriptions P WHERE P.medicament = \'"+nomMolecule+"\'"
elif(choix==4):
sql="SELECT M.nomMolecule, SUM(P.quantite) AS quantite_prescrite FROM Prescriptions P, Medicaments M WHERE P.medicament = M.nomMolecule GROUP BY M.nomMolecule;"
elif(choix==5):
sql="SELECT A.espece, AVG(A.derniereTaille) AS taille_moyenne FROM animaux A GROUP BY A.espece"
if choix>5 or choix<1:
return
if sql:
afficherSql(conn,sql)
sql=""
def afficherTable(conn):
while True:
sql=""
tables=["classes","especes","clients","veterinaires","assistants","animaux","proprietaires","medicaments","traitements","prescriptions"]
table=input("Entrez le nom du table:")
if not table:
return
if table.lower() in tables:
sql="SELECT * FroM "+ table
afficherSql(conn,sql)
def afficherMenu(conn):
while True:
print('*'*30)
print("1.afficher un table")
print("2.afficher les statistiques")
print("3.return")
choix=input("")
if choix=='3':
return
elif choix=='2':
afficherStatistique(conn)
elif choix=='1':
afficherTable(conn)
def Main():
HOST = "tuxa.sme.utc"
USER = "bdd0p071"
PASSWORD = "MFyllo2A"
DATABASE = "dbbdd0p071"
conn = pg.connect("host=%s dbname=%s user=%s password=%s" % (HOST, DATABASE, USER, PASSWORD))
while True:
print('*'*30)
print("1.afficher")
print("2.insert")
print("3,supprimer")
print("4.modifier")
print('*'*30)
print("Entrez votre choix:")
choix=input()
if (choix=="1"):
afficherMenu(conn)
else:
break
"""
elif(choix =='2'):
pass
elif(choix=='3'):
pass
elif(choix=='4'):
pass
else:
return
"""
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment