PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2024 → comment gerez vous vos archives
comment gerez vous vos archives
Iniciado por atrioux, 10,mar. 2006 14:23 - 5 respuestas
Publicado el 10,marzo 2006 - 14:23
j'ai réalisé une appli de gestion et je vais entammer la partie archivage
j'aimerais pouvoir donc retirer les données de ma base mais aussi pouvoir
les recuperer facilement si l'utilisateur en a besoin
quelle est la meilleure solution a adopter?
Publicado el 10,marzo 2006 - 14:37
Bonjour,

Regardez l'exemple "WD Utilisation des Alias", il y a un exemple pour créer
un "alias" d'un fichier avec un transfert de certains enregistrements d'un
fichier à l'autre. Cela permet de conserver le fichier principal, et d'avoir
des copies de ce fichier pour archive. L'application peut à tout moment
aller lire l'archive via un alias, ou par le principe
"HChangeNom/HChangeRep".


Elian Lacroix.


"Arnaud" <atrioux@horloges-huchez.fr> a écrit dans le message de news:
44116fa9$1@news.pcsoft.fr...

j'ai réalisé une appli de gestion et je vais entammer la partie archivage
j'aimerais pouvoir donc retirer les données de ma base mais aussi pouvoir
les recuperer facilement si l'utilisateur en a besoin
quelle est la meilleure solution a adopter?

Publicado el 10,marzo 2006 - 15:51
Voici mes méthodes (simplifiées) qui datent de WD5 et que j'utilise toujours en WD10:

A. Archiver un fichier complet: exécuter une copie du fichier dans un autre répertoire ou sur un autre support:
SI PAS fCopieFichier("RepBase\Articles.Fic","RepCopie\Articles.Fic")ALORS
--Erreur(...)
Sinon
--Info("Fichier Articles archivé dans ...")
Fin

B. Archiver un seul enregistrement d'un fichier: Deux fichiers de structure identique doivent être présents dans l'analyse: Eleves et ArchivesEleves.
* Si l'élève quitte l'école
1. Transfert des champs:
ArchivesEleves.Nom=Eleves.Nom
ArchivesEleves.Prenom=Eleves.Prenom
ArchivesEleves.Adresse=Eleves.Adresse
...
2. Ajout dans ArchivesEleves et suppression dans Eleves:
HAjoute(ArchivesEleves)
Si HErreur(...)Alors
--Erreur(...)
Sinon
--HSupprime(Eleves)
--Si HErreur(...) Alors
----Erreur("!!! Enreg.ajouté dans Archives mais pas supprimé dans Eleves !!!")
--Sinon
----Info("Fiche transférée dans Archives")
--Fin
Fin
* Si l'élève vient se réinscrire: opération strictement inverse
Publicado el 10,marzo 2006 - 16:08
C'est bien simple : je garde tout en ligne.

Frédéric.
Publicado el 10,marzo 2006 - 21:57
- faire une copie exacte de la base en cours sur un support différent que le DD comportant les données.
- contrôle de bonne execution
- suppression des enregistrements dans la base active selon les critères nécessaires.

- relecture possible des données sauvegardées par changement de répertoire en cours.

Naturellement cette méthode, rapide à programmer, est gourmande en place, donc pas rentable si ce la ne concerne que quelques enregistrements. Mais on peut combiner les deux en supprimant les données "bonnes" dans la base copiée.
Publicado el 13,marzo 2006 - 09:59
Salut Arnaud,

j'utilise une méthode que je réalisais auparavant avec WDBACKUP (sous WD
5.5) et aujourd'hui, similaire mais avec WDJOURNAL (sous WD 9 & 10) :

- création d'une liste d'extensions au format texte, incluse dans les
fichiers livrés à la base avec le programme ( exemple ASAUVER.TXT )
- lors d'une demande de backup
- lecture de chaque extension de la liste ainsi choisie
- recherche des fichiers dotés de cette extension, sous-répertoires du
répertoire courant inclus
- procédure de "zip" liée à la détection du fichier (appelée
directement par WD10 depuis fListeFichier) dans un fichier au nom de base
correspondant à l'extension en cours de traitement (FIC.ZIP, NDX.ZIP,
MMO.ZIP, DOC.ZIP, XLS.ZIP, etc...) vers un répertoire tampon
- mémorisation de la liste des ZIP ainsi créés afin de passer ladite
liste résultante à WDJOURNAL
- sauvegarde de tous les ZIP depuis le répertoire tampon vers le
support choisi par l'utilisateur (création par WDJOURNAL des fichiers
résultant WDBACKUP.ID - WDBACKUP.TAB - ARCHIVE.WDZ)

Lors d'une restauration :
- relecture de l'archive depuis le support
- récupération de tous les ZIP's en répertoire tampon
- contrôle de leur intégrité
- si intégrité tous ZIP's >>> destruction des données actuelles; sinon,
signaler sauvegarde à récupérer invalide à l'utilisateur et FIN!
- dézippage avec remise en place des fichiers récupérés
- FIN...

Cela permet pal mal de souplesse :
- en fonction des besoins, le backup inclut d'autres fichiers que ceux
uniquement WinDev (par exemple des *.DOC, *.XLS, etc...) que le programme
peut être amené à créer
- il peut exister des listes différentes : 'ASAUVER1.TXT',
'ASAUVER2.TXT', etc afin de créer des backup's différents selon les besoins,
et par défaut, bien sûr, c'est la liste "complète" qui est toujours utilisée
par le client (un backup nécessaire pour travail en régie peut par exemple
ne pas inclure les DOC, XLS et autres, mais uniquement les fichiers Windev
et donc, plus "léger", s'expédier plus facilement par le Net pour les
clients ne disposant pas d'une connexion haut débit...)
- on peut comparer l'état de la prochaine sauvegarde avec le contenu
d'une précédente facilement par quelques légères modifications du code
(retour des caractéristiques descriptives des fichiers détectés présents en
site et en backup) afin par exemple, de créer une possiobilité
d'actualisation, plutôt qu'une sauvegarde "intégrale" pouvant parfois être
relativement longue.

Voilà quelques idées qui j'espère te faciliteront le choix ad-hoc pour ta
solution en développement.
Je l'utilise pour ma part depuis pal d'années et j'en suis parfaitement
satisfait.

Amicalement,
Patrick :-)