IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Mise à jour en ligne de commande [WD12]


Sujet :

WinDev

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Inscrit en
    Avril 2008
    Messages
    1 133
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 1 133
    Par défaut Mise à jour en ligne de commande
    Bonsoir à tous!

    Depuis quelques mois j'ai des soucis avec la mise à jour en ligne de commande avec WDModif (V12)
    Je viens de déceler le pourquoi et je ne saurais l'expliquer

    Tout d'abord voici mon code :

    J'utilise HF en mode CS

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sLigneDeCommande=ChaîneConstruit([
    "%1WDModFic.exe" [-error] [-nobackup] /WDD="%2" /PWD="123"/SERVER=%3:%4@%5:%6/%7 
    ],ComplèteRep(sRepertoireWDModFic),sNomCompletWDD, SAI_UTILISATEUR, sMotDePasse, sAdresseOuNomServeurHF, nNumPortServeurHF, sNomBaseDeDonnees)
    Alors il arrive après une modif de structure d'un fichier (par exemple ce soir BonLivraison) qu'au lancement de l'appli sur mon poste de dev que j'ai une petite fenetre WD avec le nom BonLivraison me demandant le mot de passe du fichier BonLivraison.

    Que je mette le mot de passe ou pas l'appli continue et s'ouvre normalement.

    En enlevant les guillemets du mot de passe de l'analyse (PWD=123), je n'obtiens plus la fenetre et tout se passe bien.

    Je modifie à nouveau la structure du fichier BonLivraison et la j'ai une erreur au lancement probleme de structure et bla bla bla...

    Je remets les guillemets sur le mot de passe de l'analyse (PWD="123") et tout rentre de nouveau dans l'ordre

    Avez- vous une idée ?

    Merci d'avance

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Par défaut
    Bonjour zouzoukha,

    Le code que tu nous a donné est-il celui que tu utilises réellement ?

    En le lisant, je vois que ce n'est pas une utilisation correcte de la ligne de commande dont je donne la syntaxe ci-dessous.

    Citation Envoyé par Syntaxe de WDModFic

    WDModFic.EXE [-subdir][-report][-error][-wizard][-nobackup][-noprogress][-PDA][-nolink][-noanaguid][-noanaconnection]
    /WDD=<CheminWDD>
    /PWD=<MotDePasseWDD>
    /DIR=<RepFichierDeDonnées>
    /FILE=<FichierDeDonnées>
    /FILEPWD=<MotPasseFichier>
    /PRJ=<NomProjet>
    /SERVER=<BaseDeDonnéesHyperFileClientServeur>
    /US
    Les crochets:
    Le texte explicatif de la syntaxe utilise les caractères "crochets" pour indiquer qu'un paramètre est facultatif.
    C'est seulement une convention qui nous sert à comprendre la syntaxe de la ligne de commande.
    Mais les crochets ne doivent pas être retranscrits dans la ligne de commande réellement utilisée.

    Espacement des paramètres:
    Devant chaque paramètre il est préférable de toujours laisser un caractère espace qui sert de "séparateur".
    Or le paramètre /SERVER semble collé au paramètre précédent.

    En principe, le fait d'encadrer la valeur du paramètre avec des guillemets devrait être interprété comme ceci:
    • la valeur du paramètre est l'ensemble des caractères compris entre les guillemets;
    • les guillemets qui encadrent sont ignorés;
    • le guillemet fermant est équivalent à un séparateur de paramètres.

    D'ailleurs c'est ainsi que se comporte la fonction LigneCommande().

    En revanche, si tu omets les guillemets, la valeur du paramètre ne doit pas contenir d'espace, car celui-ci serait interprété comme étant un séparateur.
    Donc, si la valeur d'un paramètre contient un caractère séparateur, alors il faut placer cette valeur entre guillemets.

    En espérant t'avoir éclairé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    sLigneDeCommande=ChaîneConstruit([
    "%1WDModFic.exe" -error -nobackup /WDD="%2" /PWD="123" /SERVER=%3:%4@%5:%6/%7 
    ],ComplèteRep(sRepertoireWDModFic),sNomCompletWDD, SAI_UTILISATEUR, sMotDePasse, sAdresseOuNomServeurHF, nNumPortServeurHF, sNomBaseDeDonnees)

  3. #3
    Membre émérite
    Inscrit en
    Avril 2008
    Messages
    1 133
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 1 133
    Par défaut
    Salut JBO

    Oui c'est bien le code que j'utilise :
    Le pire depuis plus de 8 mois (et le plus inquiétant dans plusieurs projets )

    Dans tous les cas merci pour ces explications comme d'hab "Pédagogiques"

    C'est quand meme bizarre que cela fonctionnait très souvent sans souci mais dans de rares cas ....

    Enfin voici ce que renvoyait la ligne de commande avant :



    Puis avec la correction JBO



    Maintenant je supprime ou rajoute une rubrique dans le fichier BonLivraison et la modif se fait sans problème

    Merci pour tout

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Par défaut
    Hello zouzoukha,

    Oups...
    En lisant ta réponse, je m'aperçois que j'ai loupé le paramètre /SERVER dont la valeur doit être mise entre guillemets, au moins par précaution.

    Au lieu de...
    /SERVER=ADMIN:@user-pc:4900/SAPEC
    ... il faut...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /SERVER="ADMIN:@user-pc:4900/SAPEC"
    ...ne serait-ce que pour éviter un problème d'analyse de possibles caractères espace dans le nom de la base.

    Voici donc un code plus "sûr":
    Code WLangage : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sLigneDeCommande=ChaîneConstruit([
    "%1WDModFic.exe" -error -nobackup /WDD="%2" /PWD="123" /SERVER="%3:%4@%5:%6/%7" 
    ],ComplèteRep(sRepertoireWDModFic),sNomCompletWDD, SAI_UTILISATEUR, sMotDePasse, sAdresseOuNomServeurHF, nNumPortServeurHF, sNomBaseDeDonnees)

  5. #5
    Membre émérite
    Inscrit en
    Avril 2008
    Messages
    1 133
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 1 133
    Par défaut
    Salut JBO
    Noté et corrigé

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Problème mise à jour de ligne
    Par alexabcinformatique dans le forum Access
    Réponses: 6
    Dernier message: 18/12/2010, 17h21
  2. [MySQL] Mise à jour plusieurs lignes
    Par robinmaret dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 11/09/2009, 14h47
  3. [MySQL] Mise à jour des lignes cochées
    Par cdevl32 dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 22/04/2009, 19h35
  4. Procedure Stocké et mise à jour de ligne
    Par Andry dans le forum SQL
    Réponses: 2
    Dernier message: 26/11/2004, 10h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo