Version de l'analyse [WD10]

Le
wd_newbie
Bonjour, une petite question (oui encore, vous verrez que dans moins
de 10 ans c'est qui pourrait répondre à celles des autres ) :

J'ai réussi a créer des sauvegardes, une belle installation avec
WDinst qui me met en plus de mon appli des fichiers et des truc dont
le WDModFic.

Si je recharge une de mes anciennes sauvegardes sur un nouvel
executable, j'ai le problème de la version de l'analyse. Après avoir
décortiquer l'aide, je pense arriver a utiiser en ligne de cde le
WDModFic, mais je n'arrive pas a faire comnprendre a mon appli de
controler le versionning entre les fichiers réimportés et que je
désire mettre a niveau et ceux attendus par mon application.

Doit-on attendre une erreur et la gérer, ou ne serait-ce pas plus
élégant de gérer le tout avant ?

Merci d'avance pour vos lumières

Olivier
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Val
Le #14631081
Bonjour

"wd_newbie" de news:
Bonjour, une petite question (oui encore, vous verrez que dans moins
de 10 ans c'est qui pourrait répondre à celles des autres ...) :



J'ai réussi a créer des sauvegardes, une belle installation avec
WDinst qui me met en plus de mon appli des fichiers et des truc dont
le WDModFic.



Si je recharge une de mes anciennes sauvegardes sur un nouvel
executable, j'ai le problème de la version de l'analyse. Après avoir
décortiquer l'aide, je pense arriver a utiiser en ligne de cde le
WDModFic, mais je n'arrive pas a faire comnprendre a mon appli de
controler le versionning entre les fichiers réimportés et que je
désire mettre a niveau et ceux attendus par mon application.



Doit-on attendre une erreur et la gérer, ou ne serait-ce pas plus
élégant de gérer le tout avant ?



Merci d'avance pour vos lumières



Olivier




Il y a plus simple mais une solution "didactique" consiste à tester
l'ouverture des fichiers HF pour voir si une erreur liée à la structure est
générée.

Pour ce faire, en début de projet, c'est-à-dire dans le code INIT du projet
et avant toute manipulation des fichiers HF bien sur, tu places quelques
lignes de code dont le but sera de tester l'ouverture des fichiers HF et, en
cas de problème de structure, de lancer WDModFic en ligne de commande.

Donc, admettons que ton projet exploite 15 fichiers HF, soient:
FICHIER1.FIC
FICHIER2.FIC
FICHIER3.FIC
FICHIER4.FIC
FICHIER5.FIC
...
...
FICHIER15.FIC

Admettons également que ces 15 fichiers HF soient placés dans le dossier
"RepDonnes".

Le code peut ressembler à ceci.

ResultatTest est un booléen
ChaineProvisioire est une chaîne
i,j sont des entiers

ResultatTestúux
POUR i=1 A 15
H.ErrIgnore = Vrai
// H.ErrIgnore est positionné à Vrai pour que les erreurs
// n'arrêtent pas l'exécution du programme.

SI fFichierExiste(RepDonnes+"FICHIER"+i+".FIC")=Vrai ALORS
ChaineProvisioire="FICHIER"+i
HOuvre(ChaineProvisioire)
H.ErrIgnore = Faux
// H.ErrIgnore est repositionné à faux
j=HErreur(hErrEnCours)
SI PAS HErreurBlocage() ALORS
SELON j
CAS 70016 : ResultatTest=Vrai;SORTIR
CAS 72109 : ResultatTest=Vrai;SORTIR
AUTRES CAS : // Rien
FIN
FIN
FIN
FIN

H.ErrIgnore = Faux
// On replace l'instruction ici pour la cas où
// il n'y aurait pas de fichier HF

SI ResultatTest=Vrai ALORS
// Si ResultatTest est à vrai, alors cela veut dire qu'il y a
// eu une erreur à l'ouverture d'un fichier, donc il faut
// mettre à jour la structure via WDmodfic
// Le nom du fichier est contenu dans "ChaineProvisioire".
FIN

Voilà.
Si tu effectues des modifications au niveau du cryptage des fichiers HF
entre les versions de l'analyse, tu dois également
tester les fichiers sur la propriété nomdufichier..CryptageFic
Concernant l'erreur 72109, il peut être intéressant de la traiter car il me
semble qu'elle peut être rencontrée quand il y a un problème sur la
structure des fichiers HF.

A+

Val
JeAn-PhI
Le #14631021
wd_newbie a émis l'idée suivante :
Bonjour, une petite question (oui encore, vous verrez que dans moins
de 10 ans c'est qui pourrait répondre à celles des autres ...) :

J'ai réussi a créer des sauvegardes, une belle installation avec
WDinst qui me met en plus de mon appli des fichiers et des truc dont
le WDModFic.

Si je recharge une de mes anciennes sauvegardes sur un nouvel
executable, j'ai le problème de la version de l'analyse. Après avoir
décortiquer l'aide, je pense arriver a utiiser en ligne de cde le
WDModFic, mais je n'arrive pas a faire comnprendre a mon appli de
controler le versionning entre les fichiers réimportés et que je
désire mettre a niveau et ceux attendus par mon application.

Doit-on attendre une erreur et la gérer, ou ne serait-ce pas plus
élégant de gérer le tout avant ?

Merci d'avance pour vos lumières

Olivier



bonjour

voici une solution qui fonctionne à merveille merci au concepteur

http://windev.dev4u.org/index.php?option=com_joomlaboard&ItemidD&func=view&idy8&catid=6

--
Cordialement JeAn-PhI
wd_newbie
Le #14630851
J'ai créé un petite procédure en me basant un peu sur les deux
réponses (merci de votre aide !) :

J'ai mis le HcréationSiInexistant() dans un procédure au démarrage de
l'application :
Elle a l'air de fonctionner au poil, je la poste ici , si ça peut
aider quelqu'un et si vous voyez des énormités dans mon code


Amicalement

Olivier


PROCEDURE tester_fichiers()

QUAND EXCEPTION
// gérer les erreurs de version d'analyse
SI ExceptionInfo(errCode) = 70016 ALORS
// aviser les utilisateurs
sMessage est une chaîne
sMessage=[
L'application et la base données n'ont pas la même structure, ceci
provient
généralement d'une mise à jour du logiciel ou du rechargement d'une
ancienne sauvegarde de données.
Le programme va tenter de convertir la structure des données pour
la rendre compatible.
]
Erreur(sMessage)


// utiliser WDModFic ----------------
sCheminWDModFic,sCheminAnalyse,sCheminFichiers,sLigneDeCommande est
une chaîne
sCheminWDModFic üheminCourt( ComplèteRep(gsRepApplication) +
"WDModFic.exe")
sCheminAnalyse = fCheminCourt(ComplèteRep(gsRepApplication) +
"monApplication.wdd")
sCheminFichiers = fCheminCourt(gsFichierGlobal) // globale qui
contient le chemin des fichiers

// passer en ligne de cde
sLigneDeCommande = sCheminWDModFic + " -subdir -error /WDD=" +
sCheminAnalyse + " /DIR=" + sCheminFichiers

SI LanceAppli(sLigneDeCommande,exeActif,exeBloquant)= Vrai ALORS
Info("La mise à jour de la structure a été effectuée !")
SINON
Info("La mise à jour des données n'a pas réussi, consultez le
manuel utilisateur pour tenter de convertir manuellement la base de
données !")
FinProgramme()

FIN
//-----------------------------------
FIN

FIN

HCréationSiInexistant("*") // créer les fichiers si ils n'existents
pas
Publicité
Poster une réponse
Anonyme