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 :

HMODIFIE : L'enregistrement a été modifié depuis sa dernière lecture. [WD12]


Sujet :

WinDev

  1. #1
    Membre éclairé Avatar de J0r_x
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    804
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2006
    Messages : 804
    Points : 751
    Points
    751
    Par défaut HMODIFIE : L'enregistrement a été modifié depuis sa dernière lecture.
    Bonjour,

    J'ai une table fichier, lorsque je clique sur modifier ça m'ouvre une fenetre (je fais fichierversecrans() pour remplir les zones) puis lorsque je clique sur valider ça me fait : ecranverfichiers() + hmodifie()
    Ça marche pour les 4 premières lignes affichées dans le tableau mais pour toutes les autres j'obtiens ce message : "Modification d'un enregistrement. L'enregistrement a été modifié depuis sa dernière lecture." et l'enregistrement ne s'effectue pas.

    Je suis sur SQLServer avec accès natif.

    j'ai fais des trace dans le cas ou le hmodifie renvoie faux sur une des rubriques (clé primaire dans la table):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Trace("Utili : "+HErreurModification(SER_BANK,BAGUI,hEnrUtilisateur))
    Trace("LU : "+HErreurModification(SER_BANK,BAGUI,hEnrLu))
    Trace("FICHIER : "+HErreurModification(SER_BANK,BAGUI,hEnrFichier))
    //Renvoie :
    Utili : 00113
    LU : 00113
    FICHIER : 00000
    Ça expliquerait la différence lors de la modification, non?

    Message d'erreur complet :
    Dump de l'erreur du module <WD120HF.DLL> <12.00It>.
    Appel WL :
    Fonction
    n° de syntaxe <0>
    Niveau : erreur non fatale (EL_ONRETURN)
    Code erreur : 70700
    Code erreur WD55 : 700
    Pas de code d'erreur système
    Pas de message d'erreur système
    Que s'est-il passé ?
    Modification d'un enregistrement. L'enregistrement a été modifié depuis sa dernière lecture.
    Infos de debug :
    iehf=43001
    Infos attachées :
    EIT_PATHFIC : <dbo.SER_BANK>
    EIT_ITEMNAME : BAGUI
    BANOM
    EIT_LOGICALTABLENAME : <SER_BANK>
    Identifiant dans le .err : 70408
    Aucune aide par MP, utilisez le forum.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2002
    Messages : 899
    Points : 1 100
    Points
    1 100
    Par défaut
    Et si tu faisais un HLit sur tes fichiers à l'ouverture de la fenêtre de modif ?

  3. #3
    Membre éclairé Avatar de J0r_x
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    804
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2006
    Messages : 804
    Points : 751
    Points
    751
    Par défaut
    il n'y a pas besoin, vu que je suis sur une table fichier.
    Quand j'arrive sur ma fenêtre de modification j'ai bien les bonnes valeurs dans les bons champs, c'est au moment ou je faire le hmodifie que ça coince.

    J'ai édité le premier message avec le message d'erreur complet.
    Aucune aide par MP, utilisez le forum.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2002
    Messages : 899
    Points : 1 100
    Points
    1 100
    Par défaut
    En fait, moi je fais toujours une relecture avant l'enregistrement, ça permet d'être sûr que l'enregistrement n'a pas été modifié entre temps.
    Je le fais même dans le bouton enregistrer, pas dans le chargement de la fenêtre. Tentes le, ça ne coute rien...

  5. #5
    Membre éclairé Avatar de J0r_x
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    804
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2006
    Messages : 804
    Points : 751
    Points
    751
    Par défaut
    Dans le cas d'une relecture avant l'enregistrement je dois renseigner tous les champs de ma fenêtre dans les valeurs du buffer de mon fichier, à la place d'un ecranversfichier()
    Le soucis c'est que ça marche pour les 5 premières ligne de la table et pas pour les suivantes.
    Aucune aide par MP, utilisez le forum.

  6. #6
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2002
    Messages : 899
    Points : 1 100
    Points
    1 100
    Par défaut
    Comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    HLit(Monfichier)
    EcranVersFichier(MonFichier)
    HModifie(Monfichier)

  7. #7
    Membre éclairé Avatar de J0r_x
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    804
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2006
    Messages : 804
    Points : 751
    Points
    751
    Par défaut
    Un nouveau fait va peut être changer les choses.
    Les 5 premières lignes de la table fichier fonctionne, mais à partir de la 6ème si je veux la modifier j'ai une erreur de doublon et toutes celles qui suivent ne peuvent être modifié.
    Le soucis c'est que si je supprime cette ligne (ou il y a l'erreur de doublon) et bien c'est la suivant qui l'a, etc ....
    J'ai regardé la clé et il n'y a pas de doublon dans la table.
    herreurdoublon() renvoie vrai.

    EDIT: le fait de mettre le hlit() me donne une erreur de doublon sur chaque ligne.
    EDIT 2: Avec le herreurinfo() j'ai la requete sql qui est affiché (dans ma table il y a deux clés primaires) et il n'y a qu'une seul des deux clés qui est dans la clause WHERE....
    Aucune aide par MP, utilisez le forum.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 410
    Points : 513
    Points
    513
    Par défaut
    Pour être sûr d'être positionné sur le bon enregistrement tu peux aussi passer un paramètre à la fenêtre qui va être ouverte avec, par exemple, l'identifiant unique puis tu fais un HlitRecherchePremier sur cette clé puis tu affiche l'enregistrement avec FichierVersEcran.

    Si la source pour ta table fichier est une requête, il faut que la source pour la fiche de modification soit un fichier de données. Après validation de la fiche il faut réafficher la table avec la constante taReexecuteRequete.

    A+

  9. #9
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2002
    Messages : 899
    Points : 1 100
    Points
    1 100
    Par défaut
    A mon avis tu as un contrôle graphique, relié à ta clé qui ne se charge pas correctement. Tu devrais peut-être vérifier les valeurs des HNumEnr
    • Avant ouverture de ta fenêtre détail
    • Dans l'ouverture
    • Avant enregistrement
    Je ne suis pas sûr mais je pense que tu auras des différences

  10. #10
    Membre éclairé Avatar de J0r_x
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    804
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2006
    Messages : 804
    Points : 751
    Points
    751
    Par défaut
    Citation Envoyé par basam95 Voir le message
    Pour être sûr d'être positionné sur le bon enregistrement tu peux aussi passer un paramètre à la fenêtre qui va être ouverte avec, par exemple, l'identifiant unique puis tu fais un HlitRecherchePremier sur cette clé puis tu affiche l'enregistrement avec FichierVersEcran.

    Si la source pour ta table fichier est une requête, il faut que la source pour la fiche de modification soit un fichier de données. Après validation de la fiche il faut réafficher la table avec la constante taReexecuteRequete.

    A+
    Normalement tu as pas besoin de faire ça, vu que tu as déjà lu cette enregistrement, à la base les tables fichiers servent à ça, si c'est pour passer son temps à relire les enregistrement....

    Sinon pour le hnumenr() c'est le même.

    Je pense que le soucis vient plutôt de l'analyse je vais aller faire un tour par là.

    EDIT : Bon j'ai trouvé, dans l'analyse j'avais une clé composé de mes deux clés primaires, qui étaient elles aussi défini en clés uniques, je les ai repassé en non clé et ça marche ....
    Merci pour votre aide.
    Aucune aide par MP, utilisez le forum.

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

Discussions similaires

  1. Réponses: 19
    Dernier message: 20/01/2012, 14h25
  2. Réponses: 4
    Dernier message: 06/05/2011, 16h52
  3. Réponses: 6
    Dernier message: 28/11/2010, 13h00
  4. Réponses: 12
    Dernier message: 29/12/2005, 11h41
  5. Enregistrer fichier xls - pilotage depuis access
    Par Celia1303 dans le forum Access
    Réponses: 5
    Dernier message: 15/11/2005, 14h15

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