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 :

Mettre a jour plusieurs enregistrements dans ma base de donnée


Sujet :

WinDev

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2016
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2016
    Messages : 21
    Points : 0
    Points
    0
    Par défaut Mettre a jour plusieurs enregistrements dans ma base de donnée
    Bonjour , j'ai un tableau avec plusieurs enregistrements et je souhaiterais qu'au clique d'un bouton modifié il modifie les enregistrements corespondansts dans la base de donné . Mais cela ne passe pas
    Voici mon code de modification
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    POUR TOUT LIGNE DE TABLE_etude1
     
    					details_devis.nume_devis=SAI_numcom1
    					details_devis.prix=COL_Prix1
    					details_devis.qte=COL_Quantité1
    					details_devis.produits=COL_Designation1
    					details_devis.ref=TABLE_etude1.COL_reference
    					details_devis.remise=SAI_reduction
    					details_devis.tva=SAI_tva
     
    			hmodifie(details_devis)
    					FIN
    j'ai besoin d'un coup de main , cordialement

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    je n'ai jamais utilisé la fonction hmodifie dans les quelques projets que j'ai fait, personnellement, je fais appel aux requêtes, à chacun sa méthode.
    Pour ton problème, je vois que la fonction TableEnregistre pourrait t'aider.

    PS: penses plutôt à poser ce genre de question dans la section HyperFileSQL du forum

  3. #3
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 054
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 054
    Points : 9 394
    Points
    9 394
    Par défaut
    Personnellement, je n'aime pas du tout la syntaxe Pour toute ligne de .... Je ne l'aime pas, parce que ça laisse plus ou moins une ambiguïté sur les champs à manipuler.
    Cette syntaxe devrait être interdite aux débutants.
    Le fait est que sur ce forum, on voit plein de questions de la part de gens qui utilisent la syntaxe 'Pour Toute ligne', alors que les gens qui utilisent les autres syntaxes n'ont pas de problèmes.

    Je suis de l'école traditionnaliste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    n = tableoccurrence( matable)
    pour i = 1 a n
        details_devis.prix=ma_table.COL_Prix1[i]
        details_devis.qte=ma_table.COL_Quantité1[i]
        hmodifie(details_devis)
    fin
    Ca prend 30 secondes de plus au moment de taper le programme, ça prend peut-être 2 centièmes de secondes de plus à l'exécution, mais ça prend 4 heures de moins au debuggage.


    Et comme en plus , je n'aime pas les bugs, je teste les lignes qui pourraient poser problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    n = tableoccurrence( matable)
    pour i = 1 a n
        details_devis.prix=ma_table.COL_Prix1[i]
        details_devis.qte=ma_table.COL_Quantité1[i]    // etc etc 
        si pas hmodifie(details_devis) alors 
            erreur ( " Plantage dans hmodifie ", herreur() )
        fin
    fin
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2016
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2016
    Messages : 21
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par tbc92 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    n = tableoccurrence( matable)
    pour i = 1 a n
        details_devis.prix=ma_table.COL_Prix1[i]
        details_devis.qte=ma_table.COL_Quantité1[i]    // etc etc 
        si pas hmodifie(details_devis) alors 
            erreur ( " Plantage dans hmodifie ", herreur() )
        fin
    fin
    Quand j'applique ton code c'est une ligne seulement il modifie dans ma base de donnée

  5. #5
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 054
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 054
    Points : 9 394
    Points
    9 394
    Par défaut
    Oui tout à fait, j'ai oublié 4 ou 5 lignes essentielles !!!
    Si tu avais lu la documentation sur la fonction hmodifie, tu aurais pu le voir, mais tu as probablement pris le défi de programmer sans lire la documentation.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    n = tableoccurrence( matable)
    pour i = 1 a n
        hRecherche ( details_devis, id_devis, matable.col_id_devis [i]  )
        si pas htrouve() alors 
             Erreur ( " La ligne xxx n'existe pas dans le fichier details_devis ")
        sinon
            details_devis.prix=ma_table.COL_Prix1[i]
            details_devis.qte=ma_table.COL_Quantité1[i]    // etc etc 
     
            si pas hmodifie(details_devis) alors 
                erreur ( " Plantage dans hmodifie ", herreur() )
            fin
        fin
    fin
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2016
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2016
    Messages : 21
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par tbc92 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    n = tableoccurrence( matable)
    pour i = 1 a n
        hRecherche ( details_devis, id_devis, matable.col_id_devis [i]  )
        si pas htrouve() alors 
             Erreur ( " La ligne xxx n'existe pas dans le fichier details_devis ")
        sinon
            details_devis.prix=ma_table.COL_Prix1[i]
            details_devis.qte=ma_table.COL_Quantité1[i]    // etc etc 
     
            si pas hmodifie(details_devis) alors 
                erreur ( " Plantage dans hmodifie ", herreur() )
            fin
        fin
    fin
    erreur(La ligne n'existe pas dans le fichier details_devis)

  7. #7
    Membre émérite
    Femme Profil pro
    .
    Inscrit en
    Janvier 2012
    Messages
    999
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : .
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Janvier 2012
    Messages : 999
    Points : 2 525
    Points
    2 525
    Par défaut
    Mettre un -1 à tbc92 sur ce coup là, faut être un peu gonflé (et je me retient)

    Par contre LeGeek, tu pourrais faire un effort (Auto-formation et Aide) et lire l'esprit des réponses au lieu de les copier-coller.

    PS:
    Tu peux me mettre -1, ça ne m'empêche pas de dormir.

  8. #8
    Membre émérite
    Femme Profil pro
    .
    Inscrit en
    Janvier 2012
    Messages
    999
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : .
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Janvier 2012
    Messages : 999
    Points : 2 525
    Points
    2 525

  9. #9
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 054
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 054
    Points : 9 394
    Points
    9 394
    Par défaut
    Citation Envoyé par legeek1012 Voir le message
    erreur(La ligne n'existe pas dans le fichier details_devis)
    Parfait. Ca confirme qu'il faut absolument tester les codes retour des fonctions.

    A priori, tu peux passer le sujet en résolu.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

Discussions similaires

  1. [Débutant] Mettre à jour une table dans une base de données crée par code.(access)
    Par sidisadmir dans le forum ADO.NET
    Réponses: 1
    Dernier message: 31/08/2013, 09h54
  2. Réponses: 1
    Dernier message: 30/07/2006, 20h02
  3. enregistrer dans une base de données
    Par liverbird dans le forum C++Builder
    Réponses: 33
    Dernier message: 12/07/2006, 19h50
  4. [MySQL] Enregistrer dans une base de données à partir d'une liste déroulante
    Par snakejl dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 17/05/2006, 16h32
  5. inscription via le web et enregistrement dans une base de données
    Par titoenis dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 17/05/2006, 09h20

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