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 :

Comment changer le contenu de Base de Donnees


Sujet :

C++Builder

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 59
    Par défaut Comment changer le contenu de Base de Donnees
    Bonjour,
    mon problème se situe dans la modification d'une valeur de ma base de donnees : je m'explique, j'ai une table Table1, dans laquelle j'ai deux colonnes Col1 et Col2.
    je souhaite modifier une valeur dans Col2. cette valeur correspond a une autre valeur de Col1.
    exp : Col1 --> Nom
    Col2-->Notes
    donc ici je souhaite changé la note de tel ou tel nom.

    Voila ce que j'ai fait mais en vain.
    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
    19
    20
    21
     
     while(!ADOTable7->Eof)
       {
          // on récupère le code du produit
     
          CMP = ADOTable7->FieldByName("CodeProduit")->AsString;
          if (CMP==codeMP)
          condition=1;
     
          // on passe à la ligne suivante
          ADOTable7->Next();
          }
            if (condition == 1)
            {
             Table->FieldByName("Ville")->Value = VilleEdit->Text
             this->ADOQuery3->SQL->Clear();
             this->ADOQuery3->SQL->Add("SELECT f.cmp AS cmp, f.qmp AS qmp FROM Incitation f  WHERE f.qmp==codeMP);
             this->ADOQuery3->ExecSQL();
             Memo7->Lines->Add( "Ajout avec suscces");
             ShowMessage("Sauvgarde effectuée");
             }
    Merci de me proposer les modifications adéquates.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 573
    Par défaut
    Salut

    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
    Mysql - Mise à jour d'une table : UPDATE
     
     
    Synthaxe :
     
    UPDATE nomdetable Set nomattribut1=expression1,..nomattributN=expressionN WHERE condition;
     
    Exemple :
     
    UPDATE Client SET nom='Durand', prenom='Henry' WHERE adresse='12 rue de la marne';
    	 	Exemple général :
     
    <?php
      $new_nom = '';
      $new_prenom = '';
      mysql_query("UPDATE table SET nom='$new_nom', prenom='$new_prenom' WHERE id=10");
      // met a jour le 'nom' et 'prenom' ou l'ID = 10
    ?>

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 59
    Par défaut
    j'ai intégré ton idée dans mon code comme suit mais plante à l'exécution en disant que CMP n'a pas de valeur par défaut.
    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
    19
    20
    21
     
    while(!ADOTable7->Eof)
       {
          // on récupère le code du produit
          quantMP = Edit10->Text;
          codeMP = Edit9->Text;
          CMP = ADOTable7->FieldByName("CodeProduit")->AsString;
          if (CMP==codeMP)
          {
          condition=1;
     
             this->ADOQuery3->SQL->Clear();
             this->ADOQuery3->SQL->Add("UPDATE Incitation SET        QuantProduit='quantMP' WHERE codeMP=CMP");
             this->ADOQuery3->ExecSQL();
     
             ShowMessage("Sauvgarde effectuée");
            break;
            }
          // on passe à la ligne suivante
          ADOTable7->Next();
          }

  4. #4
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    Quels sont les types (dans ta base de donnée) de QuantProduit et codeMP?

    Si ce sont des entiers (Tes TEdit doivent évidemment contenir des entier, sinon ca ne marchera pas) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ADOQuery3->SQL->Clear();
    ADOQuery3->SQL->Add("UPDATE Incitation");
    ADOQuery3->SQL->Add("SET  QuantProduit = " + quantMP );
    ADOQuery3->SQL->Add("WHERE codeMP = " + CMP);
    ADOQuery3->ExecSQL();
    Si ce sont des VARCHAR2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ADOQuery3->SQL->Clear();
    ADOQuery3->SQL->Add("UPDATE Incitation");
    ADOQuery3->SQL->Add("SET  QuantProduit = " + QuotedStr(quantMP) );
    ADOQuery3->SQL->Add("WHERE codeMP = " + QuotedStr(CMP));
    ADOQuery3->ExecSQL();
    Un petit conseil qui ne concerne pas ton problème : Essai de renommer tes composants! Parce que ce trimbaler avec des Edit8, Edit9, ADOTable9, ADOQuery3, etc... c'est pas très parlant, et plus difficilement compréhensible même pour toi!

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 59
    Par défaut
    le même problème persiste.
    voici le message en question en piece jointe.
    Images attachées Images attachées  

  6. #6
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    Juste une question : quels est le nom des champs (et leur type) dans ta table INCITATION?

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 59
    Par défaut
    Bonjour
    les type sont ouvert !! je m'explique sur ma base de données Access, j'ai pas spécifié un type de colonne en particulier, mais pour plus de précision la colonne CodeProduit--> est de type Char et la colonne QuantProduit --> est de type reel. CMP indique une valeur capturée a partir d'un tEdit.

  8. #8
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    Citation Envoyé par scoubi32006 Voir le message
    Bonjour
    les type sont ouvert !! je m'explique sur ma base de données Access, j'ai pas spécifié un type de colonne en particulier
    Les champs de ta base de donnée ne sont pas typés??? Je savais même pas que c'était possible (si ça l'est...). Pourquoi n'affecte tu pas un type à tes champs?

    Ensuite pour mettre un jour un champ, une simple requête SQL UPDATE (voir précédents post) fera l'affaire.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 59
    Par défaut
    mes champs sont un de type numerique et l'autre de type texte !!!et meme avec le UPDATE il reste quelque chose qui ne tourne pas rond !!!!
    Au secours !!!!

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/01/2008, 20h55
  2. Comment changer le shell de base ?
    Par gifffftane dans le forum Administration système
    Réponses: 2
    Dernier message: 07/01/2008, 09h25
  3. [C# 2.0] Comment se connecter à une base de données SQL Server ?
    Par prince_antonio dans le forum Accès aux données
    Réponses: 5
    Dernier message: 14/07/2006, 11h44
  4. [C# 2.0] Comment mettre à jour ma base de données Access ?
    Par Leesox dans le forum Accès aux données
    Réponses: 1
    Dernier message: 30/05/2006, 20h16
  5. comment changer un alias de base de donnée pour y acceder ?
    Par gsmdu62 dans le forum Bases de données
    Réponses: 5
    Dernier message: 02/05/2006, 09h52

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