Sauvegarde et restauration d'une base avec 7zip Vous voulez bénéficier de la puissance de 7ZIP Voici une manière bien pratique de pilotage de 7zip par windev 1- Téléchargez les fichiers suivant et mettez les à coté de votre exécutable. Fichiers nécessaires Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens! 2- Procédure de sauvegarde Code (Windev): PROCEDURE My_SauvBD_7z(_sRep_Source est une chaîne="",_sRep_Destination est une chaîne="",_sArchiveName est une chaîne="",_sPWD est une chaîne="",_sCompType="",_sCompMode="") // Adaptaion des commandes par SuenoDesign - http://fekwx.com/ // _sRep_Source : Le répertoire où se trouve les fichiers à sauvegarder // Ex : Les fichiers de votre base de données // _sRep_Destination : Le répertoire de destination où va se créer l'archive // _sArchiveName : Désignation de l'archive // _sPWD : Mot de passe de l'archive, si vide l'archive ne sera pas verouillée // _sCompType et _sCompMode voir documentation de 7z _bVal est un booléen=Faux _s7zG est une chaîne=Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!+["\"]+"7zG.EXE" // Fichier necessaire pour la sauvegarde et la restauration _s7zdll est une chaîne = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!+["\"]+"7z.dll" // Bibliothèque necessaire pour la sauvegarde et la restauration _sCMD est une chaîne ="" SI Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(_s7zG)=Faux OU Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(_s7zdll)=Faux ALORS Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("Le fichier "+ Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(_s7zG,fFichier+fExtension) +"/ "+Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(_s7zdll,fExtension+fFichier)+" n'existe pas sur le disque","Opération annulée.") RENVOYER Faux FIN // Fermeture de tous les fichiers de la base pour éviter toute corruption SI PAS Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("*") ALORS Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("Attention") Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("Problème lors de la fermeture des fichiers","Opération annulée.") RENVOYER Faux FIN SI _sArchiveName="" ALORS _sArchiveName="SAUV"+"_"+Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!()+"_"+Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(),"HHMMSS") SINON _sArchiveName=_sArchiveName+"_"+Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!()+"_"+Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(),"HHMMSS") FIN SI PASfRépertoireExiste(_sRep_Destination) = Vrai ALORS Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("Attention") Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("Le répertoire de destination des archives [" + _sRep_Destination + "] n'existe pas sur le disque","Opération annulée.") RENVOYER Faux FIN _sCMD = "7zG a " // CompType SELON _sCompType CAS "7z": _sCMD += "-t7z " CAS "XZ": _sCMD += "-txz " CAS "ZIP": _sCMD += "-tzip " CAS "GZIP": _sCMD += "-tgzip" CAS "BZIP2": _sCMD += "-tbzip2 " CAS "TAR": _sCMD += "-ttar " CAS "WIM": _sCMD += "-twim" AUTRES CAS _sCMD += "-t7z " FIN _sCMD += Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(34)+_sRep_Destination+["\"]+_sArchiveName+Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(34)+" " // Répertoire source des fichiers à sauvegarder SI PAS Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(_sRep_Source) = Vrai ALORS Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("Attention") Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("Le répertoire source des fichiers à sauvegarder [" + _sRep_Source + "] n'existe pas sur le disque","Opération annulée.") RENVOYER Faux FIN _sCMD += Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(34)+_sRep_Source+["\"]+"*"+Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(34) // Exclure certains fichiers d'etre sauvegardés avec l'attribut [-x!]+nom du fichier ou extension à exclure // Exemple : _sCMD +=" -x!*.ndx " _sCMD += " -x!*.ndx "+" -x!g2p_produits_Catalog.*"+" -x!g2p_prod_prix_catalog.*" _sCMD += " -ssw " SELON _sCompMode CAS 1: _sCMD += "-mx0" CAS 2: _sCMD += "-mx1" CAS 3: _sCMD += "-mx3" CAS 4: _sCMD += "-mx5" CAS 5: _sCMD += "-mx7" CAS 6: _sCMD += "-mx9" AUTRES CAS _sCMD += "-mx9" FIN // Mot de passe du fichier archive s'il est renseigné IF Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(_sPWD) <> "" THEN _sCMD += " -p"+Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(_sPWD) END _bVal=Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(_sCMD,exeActive,exeWait) RENVOYER _bVal 3- Procédure de restauration Code (Windev): PROCEDURE My_RestaurBD_7z(_sRep_Extract est une chaîne=_sChemBD,_sRep_Archives est une chaîne="",_sArchiveName est une chaîne="",_sPword est une chaîne="",_sCompType="",_sCompMode="") // Adaptaion des commandes par SuenoDesign - http://fekwx.com/ // _sRep_Extract : Chemin du répertoire d'extraction des fichiers compressés _bVal est un booléen=Faux _s7zG est une chaîne=Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!+["\"]+"7zG.EXE" // Fichier necessaire pour la sauvegarde et la restauration _s7zdll est une chaîne = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!+["\"]+"7z.dll" // Bibliothèque necessaire pour la sauvegarde et la restauration _sCMD est une chaîne ="" SI Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(_s7zG)=Faux OU Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(_s7zdll)=Faux ALORS Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("Le fichier "+ Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(_s7zG,fFichier+fExtension) +"/ "+Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(_s7zdll,fExtension+fFichier)+" n'existe pas sur le disque","Opération annulée.") RENVOYER _bVal FIN SI PAS Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(_sRep_Extract) = Vrai ALORS Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("Attention") Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("Le répertoire d'extraction des fichiers [" + _sRep_Extract + "] n'existe pas sur le disque","Opération annulée.") RENVOYER Faux FIN SI PAS Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(_sRep_Archives) = Vrai ALORS Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("Attention") Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("Le répertoire des archives [" + _sRep_Archives + "] n'existe pas sur le disque","Opération annulée.") RENVOYER Faux FIN // Fermeture de tous les fichiers de la base pour éviter toute corruption SI PAS Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("*") ALORS Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("Attention") Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("Problème lors de la fermeture des fichiers","Opération annulée.") RENVOYER Faux FIN SI Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(_sRep_Archives+["\"]+_sArchiveName)=Faux ALORS Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("Le fichier archive "+ Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(_sRep_Archives+["\"]+_sArchiveName,fFichier+fExtension)+" n'existe pas sur le disque","Opération annulée.") RENVOYER _bVal FIN _sCMD = "7zG e " _sCMD += Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(34)+_sRep_Archives+["\"]+_sArchiveName+Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(34)+" " // CompMode SELON _sCompMode CAS 1: _sCMD += "-mx0" CAS 2: _sCMD += "-mx1" CAS 3: _sCMD += "-mx3" CAS 4: _sCMD += "-mx5" CAS 5: _sCMD += "-mx7" CAS 6: _sCMD += "-mx9" AUTRES CAS _sCMD += "-mx9 " FIN _sCMD += " -o"+Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(34)+_sRep_Extract+Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(34)+" * -aoa " // Mot de passe du fichier archive s'il est renseigné IF Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(_sPWD) <> "" THEN _sCMD += " -p"+Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(_sPWD) END _bVal=Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(MyCommandString,exeActive,exeWait) RENVOYER _bVal Note : Les fichiers fournis fonctionne sous Win 10 - 64b Bon Dev à tous
Fais attention Avant de sauvedarder ferme la connexion ou ferme les fichiers à sauvedarder et après la sauvegarde relance ta connexion. faute de quoi tes fichiers sauvegardés seront corrompus.
Je pense qu'avec HFSQL /CS ce n'est pas obligatoire de fermer la connexion. Mais pour la restauration c'est oblogatoire
Bonsoir @Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!, Les voici en pièces-jointes. N.B : Les fichiers fournis fonctionne sous Win 10 - 64b Bon Dev