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 :

problème pour enregistrer dans la base [WD16]


Sujet :

WinDev

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 59
    Points : 37
    Points
    37
    Par défaut problème pour enregistrer dans la base
    bonjour à tous,

    j'ai une table ' table_article' lien avec la table 'article' dans ma base, avec une requête , je peux afficher la date de dernière commande d'un article, mais je peux pas les enregistrer dans ma base, j'ai besoin de votre aide , merci d'avance

    voici mes code dans 'fin initialisation de table table_article'

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    nBligne est un entier = TableOccurrence(TABLE_Article)
    i est un entier
    sRefarticle est une chaîne
    POUR i =1 A nBligne
    	sRefarticle = TABLE_Article[i].COL_Ref_article
    	SI HExécuteRequête(REQ_chercherdatederniercommande,hRequêteDéfaut,sRefarticle)= Vrai ALORS
    		HLitPremier(REQ_chercherdatederniercommande)
    		TABLE_Article[i].COL_Date_dern_cde = Max(REQ_chercherdatederniercommande.date_commande)
    		Article.date_dern_cde = TABLE_Article[i].COL_Date_dern_cde
     
    	FIN
    FIN
    HModifie(Article)

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Bon je vais te répondre.... mais j'irais pas te débugger ton programme comme tu semble le demander à chaque fois...

    Déjà je pense que tout ce que je vais te dire te serais apparu de façon évidente en passant au débugueur !!!

    Donc :

    Ton hModifie() en dehors de la boucle... tu vas mettre à jour que le dernier enregistrement, je suppose que ce n'est pas ce que tu veux.

    Ensuite je comprends pas bien pourquoi tu mets un max() mais il n'y a qu'une valeur dedans donc c'est inutile... du moins j'en vois pas l'intérêt puisque c'est ta requête qui est sensé te renvoyer la dernière date.

    Enfin, et là on entre dans le subjectif, mais je trouve pas normal que l'init d'une interface aille modifier des données.

  3. #3
    Membre éprouvé

    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    402
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 402
    Points : 915
    Points
    915
    Par défaut
    Bonjour,

    +++ pour Michel sur ses trois ponts ( on ne peut pas donner trois avis positifs )
    avec une dernière erreur TRES GRAVE !!!
    dans ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    HLitPremier(REQ_chercherdatederniercommande)
    		TABLE_Article[i].COL_Date_dern_cde = Max(REQ_chercherdatederniercommande.date_commande)
    		Article.date_dern_cde = TABLE_Article[i].COL_Date_dern_cde
    tu ne parcours jamais ton fichier de donnée Article, uniquement ta requête.
    (le curseur sur "Article.FIC" ne bouge jamais)
    le Hmodifie ne changera rien même si il est dans la boucle...

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Ah ouais j'avais même pas vu le Article pas ouvert ! c'est pourtant énorme....

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 59
    Points : 37
    Points
    37
    Par défaut merci pour votre réponse
    merci pour votre réponse , merci pour vos idées, j'ai modifié mes codes

    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
    16
    17
    18
     
    nBligne est un entier = TableOccurrence(TABLE_Article)
    i est un entier
    sRefarticle est une chaîne
    dernierdate est une Date
    POUR i =1 A nBligne
    	sRefarticle = TABLE_Article[i].COL_Ref_article
    	SI HExécuteRequête(REQ_chercherdatederniercommande,hRequêteDéfaut,sRefarticle)= Vrai ALORS
    		HLitPremier(REQ_chercherdatederniercommande)
    		TABLE_Article[i].COL_Date_dern_cde = Max(REQ_chercherdatederniercommande.date_commande)
    	FIN
    	dernierdate = TABLE_Article[i].COL_Date_dern_cde
    	HLitRecherchePremier(Article,ref_article,sRefarticle)
    	SI HTrouve(Article) = Vrai ALORS
    		Article.date_dern_cde = dernierdate
    	FIN
    	HModifie(Article)
    FIN
    maintenant ça marche, merci encore à vous deux pour vos réponses , merci

  6. #6
    Membre éprouvé

    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    402
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 402
    Points : 915
    Points
    915
    Par défaut
    Bonjour,

    juste pour info dans le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    HLitRecherchePremier(Article,ref_article,sRefarticle)
    	SI HTrouve(Article) = Vrai ALORS
    		Article.date_dern_cde = dernierdate
    le Htrouve est inutile car comme le dit le nom de la méthode dans HlitrecherchePremier il y a "lit" et "recherche" donc ce code suffit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SI HLitRecherchePremier(Article,ref_article,sRefarticle) ALORS
    		Article.date_dern_cde = dernierdate
    Bon dev

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 25
    Points : 58
    Points
    58
    Par défaut
    Pour chipoter, ce bloc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    dernierdate = TABLE_Article[i].COL_Date_dern_cde
    SI HLitRecherchePremier(Article,ref_article,sRefarticle) ALORS
    	Article.date_dern_cde = dernierdate
    FIN
    HModifie(Article)
    devrait être logiquement dans la condition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SI HExécuteRequête(REQ_chercherdatederniercommande,hRequêteDéfaut,sRefarticle)= Vrai ALORS
    car il faut s'assurer que ta requête ait bien été exécutée au moment où tu mets à jour ton fichier Article (via lecture du retour de la requête).

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 59
    Points : 37
    Points
    37
    Par défaut merci pour vos conseils
    merci beaucoup, vous conseils sont très utiles pour un débutant comme moi, merci beaucoup !

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 13/05/2008, 22h15
  2. Réponses: 223
    Dernier message: 27/02/2008, 18h46
  3. Réponses: 2
    Dernier message: 22/05/2007, 16h15
  4. [MySQL] problème d'enregistrement dans la base
    Par zana74 dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 10/08/2006, 17h06
  5. Réponses: 1
    Dernier message: 30/07/2006, 20h02

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