1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.
  2. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

AIDE Modification automatique de la structure des fichier des donnée ?

Discussion dans 'Windev' créé par thedrhb, Août 22, 2019.

  1. thedrhb

    thedrhb Active Member

    Inscrit:
    Mai 19, 2018
    Messages:
    299
    J'aime reçus:
    160
    Bnsr
    svp comment modifier automatique de la structure des fichier des donnée ?
    par exemple j'ai ajouté une autre colone sur le fichier des donnée et je veux l'ajouté sur le logiciel qui est deja installé sur la machine du client automatiquement
     
    Tags:
  2. popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,884
    J'aime reçus:
    1,533
    Salut

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ,
    si tes fic ne sont pas modifiables par l'utilisateur alors tu les supprimes ainsi que les mmo et ndx puis tu les remplace par les nouveau.

    si tes fic peuvent être modifier alors tu peux les mettre en XML par exemple
    voir

    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!


    tu modifie le XML avant de les réimporté.
    je crois qu'il y a peut être plus simple mais je m'en souvient pas.
     
  3. Gemini1961

    Gemini1961 Well-Known Member
    MEMBRE WX DUMP TEAM

    Inscrit:
    Jan 2, 2018
    Messages:
    572
    J'aime reçus:
    863
    Bonsoir

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ,

    En créant tout simplement une nouvelle release de ton application et en la déployant chez ton client ...

    La MàJ de la structure de la DB se fera automatiquement ...

    Bien cordialement
     
  4. suenodesign

    suenodesign Well-Known Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    507
    J'aime reçus:
    732
    Bonjour @

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    , @TOUS

    Utilise ce code
    Code (Windev):

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ("*")

    FichDonné est une chaîne
    FPass est une chaîne

    ListeFichier est une chaîne =

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ("",FPass,hLstNormal+hLstTriée)

    FichDonné=

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (ListeFichier, rangPremier, RC)
    TANTQUE FichDonné <> EOT
       

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (FichDonné,hmsSansContrôle+hmsNormal)
        FichDonné =

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (ListeFichier, rangSuivant, RC)
    FIN

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ("Restructuration")

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ("Restructuration effectuée")
     
  5. thedrhb

    thedrhb Active Member

    Inscrit:
    Mai 19, 2018
    Messages:
    299
    J'aime reçus:
    160

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Salut

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ,
    si tes fic ne sont pas modifiables par l'utilisateur alors tu les supprimes ainsi que les mmo et ndx puis tu les remplace par les nouveau.

    si tes fic peuvent être modifier alors tu peux les mettre en XML par exemple
    voir

    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!


    tu modifie le XML avant de les réimporté.
    je crois qu'il y a peut être plus simple mais je m'en souvient pas.
    Cliquez pour agrandir...
    faux comptendre d'abord,t'as dit que je doit supprimé les fichier fic...donc les données seront perdu ! c ps une soulution..en plis c manuel..j ai demandé coment le faire auto
     
  • thedrhb

    thedrhb Active Member

    Inscrit:
    Mai 19, 2018
    Messages:
    299
    J'aime reçus:
    160

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Bonsoir

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ,

    En créant tout simplement une nouvelle release de ton application et en la déployant chez ton client ...

    La MàJ de la structure de la DB se fera automatiquement ...

    Bien cordialement
    Cliquez pour agrandir...
    je l'ai essayé deja
    mais pas de resultas
     
  • thedrhb

    thedrhb Active Member

    Inscrit:
    Mai 19, 2018
    Messages:
    299
    J'aime reçus:
    160

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Bonjour @

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    , @TOUS

    Utilise ce code
    Code (Windev):

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ("*")

    FichDonné est une chaîne
    FPass est une chaîne

    ListeFichier est une chaîne =

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ("",FPass,hLstNormal+hLstTriée)

    FichDonné=

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (ListeFichier, rangPremier, RC)
    TANTQUE FichDonné <> EOT
       

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (FichDonné,hmsSansContrôle+hmsNormal)
        FichDonné =

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (ListeFichier, rangSuivant, RC)
    FIN

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ("Restructuration")

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ("Restructuration effectuée")
    Cliquez pour agrandir...
    je vais voir merci
     
  • popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,884
    J'aime reçus:
    1,533

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Bonjour @

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    , @TOUS

    Utilise ce code
    Code (Windev):

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ("*")

    FichDonné est une chaîne
    FPass est une chaîne

    ListeFichier est une chaîne =

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ("",FPass,hLstNormal+hLstTriée)

    FichDonné=

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (ListeFichier, rangPremier, RC)
    TANTQUE FichDonné <> EOT
       

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (FichDonné,hmsSansContrôle+hmsNormal)
        FichDonné =

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (ListeFichier, rangSuivant, RC)
    FIN

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ("Restructuration")

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ("Restructuration effectuée")
    Cliquez pour agrandir...
    je savais qu'il y avait mieux.

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    , j'ai dis
    si tes fic ne sont pas modifiables
     
  • suenodesign

    suenodesign Well-Known Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    507
    J'aime reçus:
    732
    Re-Bonsoir,

    C'est le code que j'utilise. Il faut seulement bien lire la page d'aide de la fonction : HModifieStructure

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    et surtout la section qui parle de l'éventualité de la modification du mot de passe des fichiers de données.

    Une autre alternative sera d'utiliser : WDModFic.exe

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

     
    raheek_makhtoom apprécie ceci.
  • khaliassas

    khaliassas Active Member

    Inscrit:
    Mar 4, 2019
    Messages:
    446
    J'aime reçus:
    142
    perso sur des ajout de colonne j'utilise
    la fonction HModifieStructure(monfichierfic)
    et ca passe en général ca passe.
     
  • gapplicat

    gapplicat Well-Known Member
    MEMBRE WX

    Inscrit:
    Mar 8, 2018
    Messages:
    399
    J'aime reçus:
    708
    Avant le HmodifieStructure, J'utilisais cette méthode qui fonctionne parfaitement

    Code (Text):

    RES est un booléen
    sLigneDeCommande est une chaîne
    sDisque est une chaîne = "C"
    sChemSauve est une chaîne


    HFerme("*")
    Multitâche(100)
    //SI PAS En Mode Test() ALORS

    SI Ouvre(FEN_OUINON,"Voulez vous faire une sauvegarde de vos données avant la mise à jour (conseillé) ?") ALORS
        sChemSauve = SansEspace(gsDisque)+SansEspace(gsCheminLogiciel)+"\Sauvegardes\"+Ste+"_avant_la_migration_" + DateSys()+HeureSys()
    //    RES = fRepCopie(chemin,sChemSauve,frJauge)
        RES = fCopieFichier(chemin+"\*.fic",sChemSauve,frJauge)
        SI PAS RES ALORS
            Ouvre(FEN_ERREUR,"Copie de sauvegarde de " + chemin  +" vers " + sChemSauve + RC +RC +ErreurInfo(errMessage))
        FIN
        RES = fCopieFichier(chemin+"\*.mmo",sChemSauve,frJauge)
        SI PAS RES ALORS
            Ouvre(FEN_ERREUR,"Copie de sauvegarde de " + chemin  +" vers " + sChemSauve + RC +RC +ErreurInfo(errMessage))
        FIN
    FIN

    //On simule un Quitter propre
    INIEcrit(Ste,"StopArret","0",chemin+"\"+ComIni)


    SI ModeCS = Vrai ALORS //En mode Serveur
        sRepertoireWDModFic est une chaîne=fCheminCourt(SansEspace(gsDisque)+SansEspace(gsCheminLogiciel)+"\Utilitaires\ ")
    //    sRepertoireWDModFic est une chaîne=fCheminCourt(sansespace(disque)+sansespace(CheminLogiciel)+"\Utilitaires\ ")
    //    sNomCompletWDD est une chaîne=sansespace(disque)+sansespace(CheminLogiciel)+"\Cudbe.WDD"
        sNomCompletWDD est une chaîne=SansEspace(gsDisque)+SansEspace(gsCheminLogiciel)+"\Cudbe.WDD"
        sUtilisateur est une chaîne=CSUSER
        sMotDePasse est une chaîne=CSPASS
        sMotDePasseAnalyse est une chaîne=MotPasseAnalyse
        sAdresseOuNomServeurHF est une chaîne=CSIPSERVEUR
        nNumPortServeurHF est un entier=CSPORT
        sNomBaseDeDonnees est une chaîne=CSBASE
     
             
        sLigneDeCommande=ChaîneConstruit([
        "%1WDModFic.exe" /FILEPWD=%8 /WDD="%2" /SERVER=%3:%4@%5:%6/%7 -Error -report -nobackup
        ],ComplèteRep(sRepertoireWDModFic),sNomCompletWDD, sUtilisateur, sMotDePasse,sAdresseOuNomServeurHF, nNumPortServeurHF, sNomBaseDeDonnees, sMotDePasseAnalyse)



        SI PAS LanceAppli(sLigneDeCommande,exeActif,exeBloquant) ALORS
            Ouvre(FEN_ERREUR,"Impossible d exécuter la modification automatique des données CLIENT/SERVEUR  : ",ErreurInfo(),"Ligne de commande utilisée : ",sLigneDeCommande)
        SINON
            FinProgramme()
        FIN

    SINON
        LanceAppli(sansespace(disque)+sansespace(CheminLogiciel)+"\Utilitaires\WDModfic.EXE  -error -report /WDD="+sansespace(disque)+sansespace(CheminLogiciel)+"\Cudbe.WDD /PWD="+MotPasseAnalyse+" /DIR="""+ComplèteRep(chemin),exeMaximise+exeActif)

    //Attention le WDMODFIC plante sur les fichiers non indéxés

        sLigneDeCommande = SansEspace(gsDisque)+SansEspace(gsCheminLogiciel)+"\Utilitaires\WDModfic.EXE"+" -subdir -nobackup "+  "/WDD="+SansEspace(gsDisque)+SansEspace(gsCheminLogiciel)+"\Cudbe.WDD /PWD="+MotPasseAnalyse+" /DIR="""+ComplèteRep(chemin) + ""
        LanceAppli(sLigneDeCommande  ,exeActif,exeBloquant)
        //LanceAppli(SansEspace(gsDisque)+SansEspace(gsCheminLogiciel)+"\Utilitaires\WDModfic.EXE   /WDD="+SansEspace(gsDisque)+SansEspace(gsCheminLogiciel)+"\Cudbe.WDD /PWD="+MotPasseAnalyse+" /DIR="""+ComplèteRep(chemin) + "-nobackup"  ,exeActif,exeBloquant)
    //    LanceAppli(SansEspace(gsDisque)+SansEspace(gsCheminLogiciel)+"\Utilitaires\WDModfic.EXE  -error -report /WDD="+SansEspace(gsDisque)+SansEspace(gsCheminLogiciel)+"\Cudbe.WDD /PWD="+MotPasseAnalyse+" /DIR="""+ComplèteRep(chemin),exeMaximise+exeActif)
        SI sansfermeture = Vrai ALORS FinProgramme()
    FIN




     
     
  • wd_newbie

    wd_newbie New Member

    Inscrit:
    Avr 11, 2018
    Messages:
    5
    J'aime reçus:
    10
    Hello,

    pour ma part, je teste les fichiers au démarrage de l'appli.

    Si tout se passe bien, je passe, sinon si j'ai une erreur de type je lance WDModFich en ligne de commande.

    Dans tous les update, je mets le *.wdd de la version en cours pour le passer en paramètre de WDModFic

    ça donne ça :

    [windev]QUAND EXCEPTION DANS


    HCréationSiInexistant("*",gsCleCryptage)



    RETOUR

    FAIRE
    // 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 convertir la structure des données pour la rendre compatible.
    ]

    HFerme("*")
    Erreur(sMessage)

    sCheminWDModFic,sCheminAnalyse,sLigneDeCommande est une chaîne
    sCheminWDModFic =( ComplèteRep(gsRepApplication) + "")
    sCheminAnalyse = (ComplèteRep(gsRepApplication) + "fichierdata.wdd")

    // Paramètres pour la modification automatique des fichiers

    // Utilisateur et mot de passe sur le serveur HFSQL
    // (avec les droits de faire la modification de structure des fichiers)
    sUtilisateur est une chaîne = val_ini("Serveur_User")
    sMotDePasse est une chaîne = val_ini("Serveur_Pass")
    sMotDePasse = DecryptePassword(sMotDePasse)
    // Adresse IP ou nom DNS de la machine qui héberge le serveur HFSQL
    sAdresseOuNomServeurHF est une chaîne = val_ini("Serveur_HFSQL")
    // Port du serveur HFSQL
    nNumPortServeurHF est un entier = 4900
    // Nom de la base de données dans laquelle se trouvent les fichiers à modifier
    sNomBaseDeDonnées est une chaîne = val_ini("Serveur_BDD")

    // Construction de la ligne de commande
    // Il suffit d'enlever /report pour ne pas avoir
    // une boîte de dialogue à la fin

    sLigneDeCommande = ChaîneConstruit([ "%1WDModFic.exe" -error -nobackup -noanaguid /WDD="%2" /SERVER="%3:%4@%5:%6/%7"
    ], ComplèteRep(sCheminWDModFic), ...
    sCheminAnalyse, sUtilisateur, ...
    sMotDePasse, sAdresseOuNomServeurHF, ...
    nNumPortServeurHF, sNomBaseDeDonnées)


    SI PAS LanceAppli(sLigneDeCommande, exeActif, exeBloquant) ALORS
    // Échec du lancement, affichage de l'erreur
    Erreur("Impossible d'exécuter la modification automatique des données : ", ErreurInfo(), ...
    "Ligne de commande utilisée : ", sLigneDeCommande)
    FIN


    ToastAffiche("Réindexation des fichiers en cours ...",toastLong,cvMilieu,chCentre,iVertFoncé)

    sListeFichier est une chaîne = HListeFichier()
    POUR TOUTE CHAÎNE sFichier DE sListeFichier SEPAREE PAR RC
    SI PAS HRéindexe(sFichier,hNdxNormal) ALORS
    CONTINUER
    FIN

    FIN

    ToastSupprimeTout()


    FIN

    FIN[/windev]
     
    Gemini1961, WX1331 et suenodesign aiment ça.
  • raheek_makhtoom

    raheek_makhtoom New Member

    Inscrit:
    Jan 10, 2018
    Messages:
    7
    J'aime reçus:
    14
    Merci les mecs , vous m'avez sauvez la vie ^^
     
  • Partager cette page

    Chargement...