Vous êtes sur la page 1sur 3

1- ////Sauvegarde BDD ; code d'initialisation dans le projet

gsModeFen est une chaîne


gsRepertoires est une chaîne
gsRepertoires = ComplèteRep(fRepExe())+fRepCrée("DATA")
HFerme("*")
//HchangeRep("*","DATA")
//HchangeRep("*", gsRepertoires)
HChangeRep("*",fRepExe+"\DATA")
HCréationSiInexistant("*")

//L'option de sauvegarde dans le menu


sDatesauv est une chaîne
sDatesauv = DateVersChaîne(DateDuJour,"jj_mm_aaaa")
sHeuresauv est une chaîne = HeureVersChaîne(HeureSys,"_HH-MM-SS")
bRepertoire est un booléen
sSel est une chaîne

SI OuiNon(Oui,"Voulez-vous vraiment sauvegarder les données ?") ALORS


sSel= fRepSélecteur("","Sélectionner un répertoire...","Sélectionner un
répertoire")
SI sSel <> "" ALORS
bRepertoire = fCopieFichier(fRepEnCours()+"\DATA\*.*",sSel+"\Sauvegarde
du " +"" +sDatesauv+sHeuresauv,frConfirmer)
FIN
ToastAffiche("Données enregistrées avec
succès",toastCourt,cvMilieu,chCentre,VertClair)
SINON
ToastAffiche("Opération annulée",toastCourt,cvMilieu,chCentre,RougeClair)
FIN

2- //// Journalisation des fichiers de données ; code d'initialisation dans le


projet

GLOBAL
gbTrace est booléen // Affiche la fenêtre de trace
LOCAL
gbTrace = Vrai

// Création des triggers


// Trigger Avant
HDécritTrigger("*","HAjoute,HModifie,HSupprime", Proc_Trigger, hTriggerAvant)

// Trigger Après
HDécritTrigger("*", "HAjoute,HModifie,HSupprime", Proc_Trigger, hTriggerAprès)

CAS ERREUR:
Erreur("Impossible d'ajouter le trigger",HErreurInfo())

////COde dans fermeture projet

// Destruction des triggers


// Trigger Avant
HDétruitTrigger("*", "HAjoute,HModifie,HSupprime", hTriggerAvant)
// Trigger Après
HDétruitTrigger("*", "HAjoute,HModifie,HSupprime", hTriggerAprès)

////CODE DANS L'option de journal ou piste d'audit dans le menu

nIdFic est un entier


// Lecture du journal
nIdFic = fOuvre(ComplèteRep(fRepExe())+"journal.log",
foLecture+foCréationSiInexistant)
SI nIdFic<>-1 ALORS
SAIS_CONTENU = fLit(nIdFic,fTaille(ComplèteRep(fRepExe())+"journal.log"))
fFerme(nIdFic)
FIN

////PROCEDURE GLOBALES
PROCÉDURE Proc_Trigger()

// Selon le trigger appelant


SELON Majuscule(H.Action)
CAS "A" // Trigger Avant
// Selon la fonction appelante
SELON Majuscule(H.FonctionTrigger)
CAS "HAJOUTE"
SI gbTrace ALORS Trace("Trigger avant : Ajout")
CAS "HMODIFIE"
SI gbTrace ALORS Trace("Trigger avant : Modification")
CAS "HSUPPRIME"
SI gbTrace ALORS Trace("Trigger avant : Suppression")

//1 : &Supprimer
//2 : &Ne pas supprimer
SELON Dialogue("Voulez-vous vraiment supprimer cet
enregistrement ?")

// &Supprimer
CAS 1
//On ne fait rien

// &Ne pas supprimer


CAS 2
// Abandon de l'action
H.AFaire = "A"
FIN

FIN

CAS "P" // Trigger Après


nIdFichier est un entier
sLigne est une chaîne

// fichier de log
nIdFichier = fOuvre(ComplèteRep(fRepExe())+"journal.log",
foAjout+foCréationSiInexistant)
sLigne = RéseauUtilisateur()+TAB+DateVersChaîne(DateDuJour())
+TAB+HeureVersChaîne(Maintenant())

// Selon la fonction appelante


SELON Majuscule(H.FonctionTrigger)
CAS "HAJOUTE"
SI gbTrace ALORS Trace("Trigger après : Ajout")
sLigne += TAB+"Ajout"+TAB
Info("L'ajout a été effectué")

CAS "HMODIFIE"
SI gbTrace ALORS Trace("Trigger après : Modification")
sLigne += TAB+"Modification"+TAB
Info("La modification a été effectuée")

CAS "HSUPPRIME"
SI gbTrace ALORS Trace("Trigger après : Suppression")
sLigne += TAB+"Suppression "+TAB
Info("La suppression a été effectuée")
FIN

sLigne+= TAB+Utilisateur.NomComplet

// Fichier de log
fEcritLigne(nIdFichier, sLigne)
fFerme(nIdFichier)

FIN

Vous aimerez peut-être aussi