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

C++Builder Discussion :

La ligne n'a pu être trouvée pour la mise a jour


Sujet :

C++Builder

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut La ligne n'a pu être trouvée pour la mise a jour
    Salut, je suis en train de developper une appli de gestion de media. Donc j'utilise ADO pour me connecter a mes tables.
    J'ai dû creer a un moment une var TADOTable *tab que j'initialise a DataModule->TFilm par ex qui est aussi un ADOTable ensuite je ne travaille plus qu'avec ma variable tab mais lorsque je veux modifier les données de tab un message d'erreur apparait en disant: "La ligne n'a pu etre trouvée pour la mise a jour. Certaines valeurs ont peut-etre changées depuis leur derniere lecture".
    J'ai essayé de repositionner le curseur a l'aide d'un DataModule->TFilm->Locate mais ca ne change rien.
    Apparemment cette erreur apparait lors du tab->Post().
    Si qqun a une idée ca m'aiderait bien.
    Merci

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Toujours avec le meme probleme. Il semblerait que cette erreur apparaisse lorsque j'execute un Post() afin d'enregistrer les données mais sans les modifier. Un petit exemple serait peut-etre plus clair.
    J'ai creé une fenetre Form1 dans laquelle j'insere un DBGrid qui affiche une liste de film.
    Si je double-clique sur un champ du DBGrid une nouvelle fenetre (Form3) apparait .
    Celle-ci affiche les informations du film dans des TEdit et un boutton "Modifier" permet de sauver les modifications.
    Si je modifie un champ et appuie sur le boutton les informations sont bien enregistrées dans la base de donnée.
    Mais si je ne modifie pas ces données et clique malgré sur le boutton Modifier, un message d'erreur s'affiche alors :"Project1.exe raised exception with message "La ligne n'a pu être trouvée pour la mise a jour. Certaines valeurs ont peut-etre changée depuis leur dernière lecture".
    Voici une partie du code simplifié :

    Code C++ : 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    __fastcall TForm3::TForm3(TComponent* Owner)
        : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm3::sauve()
    {
    DM->ADOTable1->FieldByName("titre")->AsString=Edit1->Text;
    DM->ADOTable1->FieldByName("realisateur")->AsString=Edit2->Text;
    DM->ADOTable1->FieldByName("annee")->AsInteger=StrToInt(Edit3->Text);
    }
     
    //---------------------------------------------------------------------------
     
    // C'est le boutton qui permet de sauver les données
     
    void __fastcall TForm3::Button1Click(TObject *Sender)
    {
    DM->ADOTable1->Edit();
    sauve();
    DM->ADOTable1->Post();
    }
    //---------------------------------------------------------------------------
    // Affiche les données du film
     
    void __fastcall TForm3::FormActivate(TObject *Sender)
    {
    Edit1->Text=DM->ADOTable1->FieldByName("titre")->AsString;
    Edit2->Text=DM->ADOTable1->FieldByName("realisateur")->AsString;
    Edit3->Text=IntToStr(DM->ADOTable1->FieldByName("annee")->AsInteger);
    }

    Je travaille sous Boland C++ Builder 6.0 Enterprise Suite. La base de donnée est MySQL .
    C'est vraiment louche donc une idée serait la bienvenue.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Le probleme a été resolu en utlisant des requetes sql pour inserer ou modifier les enregistrements (INSERT INTO, UPDATE)

  4. #4
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 127
    Points : 66
    Points
    66
    Par défaut
    Merci
    Vraiment très gentil d’avoir écrire la solution que tu à trouvé

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

Discussions similaires

  1. La ligne n'a pas pu être trouvée pour la mise à jour
    Par martin45 dans le forum Bases de données
    Réponses: 17
    Dernier message: 18/03/2018, 10h58
  2. Réponses: 9
    Dernier message: 22/12/2008, 11h36
  3. Réponses: 3
    Dernier message: 29/03/2007, 16h05
  4. [FEDORA] Temps pour la mise à jour de FC4 à FC5
    Par mamiberkof dans le forum RedHat / CentOS / Fedora
    Réponses: 5
    Dernier message: 08/04/2006, 19h28
  5. TADOTable VS TADOQuery pour une mise a jour
    Par okparanoid dans le forum Bases de données
    Réponses: 7
    Dernier message: 07/11/2005, 11h53

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