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
|
class Lecture_BDD_SQL ():
def __init__ (self):
pass
def lecture_db(self,):
# Lis les bases de donnees et execute la requete
try:
os.chdir('P:\\Test_Python\\Operationnel\\RequeteSQL\\BDD')
#creation curseur
connect_table_test = sqlite3.connect('Test.db')
curseur_test = connect_table_test.cursor()
#voit tous les ligne presente dans la bdd
#curseur_requete.execute("SELECT Id,Ref,Utilisateur,Environment,Requete,Frequence FROM Table_requete")
curseur_test.execute("SELECT * FROM Test")
#recuperation des informations de chaque colone par ligne
maliste = curseur_test.fetchall()
for ligne in maliste :
self.ma_liste_test(ligne)#----------------------------------------------> Process qui doit etre en parallele independant
curseur_test.close()
connect_table_test.close()
except AttributeError as Ae :
print("Erreur d'attribut: \n {}".format(Ae))
except EnvironmentError as EnE :
print(EnE)
except SyntaxError as SyE :
print("Une erreur dans la syntaxe est survenue : \n {}".format(SyE))
except ImportError as ImE:
print("Le module implementer est introuvable : \n {}".format(ImE))
def ma_liste_test(self,*maliste):
'''
Lecture de la liste et execution de la requete vers la base de donnée concernée
'''
une_liste = maliste
for colonne in une_liste:
id_req = colonne[0]
ref = colonne[1]
username = colonne[2]
env_req = colonne[3]
query_req = colonne[4]
frequenece_req = colonne[5]
url_req = colonne[6]
port_req = colonne[7]
host_req = colonne[8]
nombase_req = colonne[9]
#creation d'un dsn makedsn('Host Name', 'Port Number', nom_base ='Service Name')
dsn_oracle = cx_Oracle.makedsn(host_req,port_req,service_name = nombase_req )
#connexion à la BDD
db = cx_Oracle.connect(user = username, dsn = dsn_oracle )
curseur = db.cursor()
#execution de la requete
try:
data_oracle = curseur.execute(query_req)
except cx_Oracle.DatabaseError as exc:
error, = exc.args
print("Oracle-Error-Code:", error.code)
print("Oracle-Error-Message:", error.message)
#recuperation des resultats de la requete
resultats = data_oracle.fetchall()
print(resultats)
curseur.close()
time.sleep(frequenece_req)
#enregistrement du resultat dans la BDD
os.chdir('P:\\Test_Python\\Operationnel\\RequeteSQL\\BDD')
#creation ichier sauvegarde
fichier = open("SaveRequest.txt","a")
fichier.write("====================================================\n" )
heure = datetime.now()
fichier.write("heure actuelle: \n{heureactuelle} \n".format(heureactuelle = heure))
fichier.write("La requete appelée:\n{requete} \n".format(requete = query_req) )
fichier.write("Resultats de la requête : \n{result}\n".format(result = resultats)) |
Partager