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 :

gerer des requettes SQL


Sujet :

C++Builder

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 17
    Par défaut gerer des requettes SQL
    je veut insérer une valeur dans une table d'une base de données.
    jusque là tout parait simple, mais là ou je peut plus avanC c'est qd je veut lire une valeur d'un champs TEdit et puis integrer cette valeur dans la base.

    que dois je faire ?

  2. #2
    say
    say est déconnecté
    Membre Expert
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Par défaut
    faire des recherches sur :
    1/ le SQL : INSERT INTO
    2/ les composants orientés données : TDBEdit (controle DB dans la palette)
    3/TQuery, TDataset, TDatasource

    bon courage

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 17
    Par défaut
    voila ce que j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    this->Query2->SQL->Clear();
      this->Query2->SQL->Add("INSERT INTO Notes VALUES ( Edit1->Text.c_str())");
      this->Query2->ExecSQL();
    mais sa ne fonctionne pas. j'ai meme fait un etape intermediaire en inserant la valeur du TEdit dans une variable et puis mettre cette derniere dans la requette insert to . sa nr fonctionne pas non plus.

    que puis je faire.

  4. #4
    Membre expérimenté Avatar de Bily.sdi
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 208
    Par défaut
    normale !!! Edit1 n'est pas considéré comme une variable ou reconnu

    et il te manque les nom des champs !!

    voici un exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
     sql = "INSERT INTO client ( nom , adrs , ville , pays )";
     sql =      sql +  " VALUES ( '" +  Nom->Text      + "','" +
                                        Adresse->Text  + "','" +
                                        Ville->Text    + "','" +
                                        Pays->Text     + "' )" ;

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 17
    Par défaut
    en fait moi j'ai une liste de valeurs a insérer, mais la solution que j'ai trouvai ne me permet d'insérer que la première valeur puis il m'affiche un message d'erreur ... a votre avis que dois je changer : voici le code
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
     
    while((!Table1->Eof)||(!Table2->Eof)||(!Table3->Eof))
       {
     
     
          note2 = Table2->FieldByName("moyenne")->AsString;
     
     
     
     
          note1 = Table1->FieldByName("moyenne")->AsString;
     
            if(note1==note2)
               compa=1;
               else
               compa=0 ;
     
             Memo1->Lines->Add(note1+"___"+note2+"_____ compa="+compa);
     
     
            this->Query2->SQL->Clear();
    this->Query2->SQL->Add("INSERT INTO Notes VALUES (  , '" + compa + "')") ;
     
     
               this->Query2->ExecSQL();
     
     
     
          Table2->Next();
     
          Table1->Next();
          Table3->Next();
       }

  6. #6
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Salut nousss
    Tu a deja poste sur le meme sujet ici
    Ce n'est pas de reposter plusieurs fois qui apportera la reponse
    Tu donne le minimum d'info
    On va donc t'arracher ces infos
    Quel type de base utilise tu
    Combien de tables
    Quels types de champs, texte, numerique...
    Quels champs dans quelle table
    Quand tu ecrit "INSERT INTO Notes VALUES ( Edit1->Text.c_str())", que contient Edit1, du texte un entier ..., le champ dans lequel tu ecrit est declare en texte, numerique...
    Un probleme bien pose est un probleme a moitie resolu

  7. #7
    Membre expérimenté Avatar de Bily.sdi
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 208
    Par défaut
    as tu lu ce que j'ai ecris comme solution ?

    l'exemple permet d'insérer 4 valeur !!

    quant tu écris ca :
    INSERT INTO Notes VALUES ( , '" + compa + "')"

    ca veut que tu veux inserer qqch dans la table notes dans les champrs :

    rien et compta ? mais tu dis pas quoi

    relis mon exemple



  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 17
    Par défaut
    Bily.sdi : en fait sur ton exemple il permet de charger les 4 champs d'une table mais ce que je veut faire moi, c'est que ma base a un seul champs mais je veut le remplir pour plusieurs lignes de cette base exemple : ma base c'est la DB1 elle a une table nomée Notes et dans cette table il y un seul champs moyenne, et je ve le remplire pour un nombre bien précis d'étudiant d'ou ma boucle while.
    j'ai essaye de testé ton exemple mais il me génére plus d'erreur que le premier il me demande de definir ce que c'est SQL et plein d'autre erreur.
    en fait je dois le definr comment le sql.
    de plus j'ai mis la valeur du champs Edit dans une variable intermedière et pui j'ai mis cette derniere dans la requette et c'est là ou sa recoince .

    pour repondre aux questions de blondelle :

    * j'utilise la base de données avec Access.
    * le nombre de table variant mais sur mon exemple il est de une table.
    * ce que je veut inserer peut etre numerique comme il peut texte parce que sa depond des champs.

    que dois je faire.

  9. #9
    Membre expérimenté Avatar de Bily.sdi
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 208
    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
    for ( int i=0; i<max; i++)
    { 
      sql = "INSERT INTO Notes ( moyenne )";
      sql =      sql +  " VALUES ( '" +  moyenne + "'") ;
     
      Query1->Active = false;
     
      Query1->SQL->clear();
      Query1->SQL->Add( sql );
     
      Query1->Active=true;     //OU Query2->ExecSQL();  
     
    }
    Tu dis que ta méthode coince mais tu ne dis pas
    qu'elle est ton message d'erreur ??

    l'exemple du dessus dois fonctionner

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 17
    Par défaut
    est ce que il n'y a pas une bibliothèque qu'il faut declarer et puis comment je dois declarer le sql.
    merci

  11. #11
    say
    say est déconnecté
    Membre Expert
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Par défaut
    Bonjour, un minimum de cherches serait le bienvenu malgré tout.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AnsiString sql ="";

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 17
    Par défaut
    croyez moi j'ai tout essayer mais sa ne fonctionne pas !!!

  13. #13
    say
    say est déconnecté
    Membre Expert
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Par défaut
    Vous n'avez probablement pas tout essayer

    1/ merci de poster le code élargi posant problème
    2/ d'indiquer la ligne provoquant l'erreur
    3/ donner le message d'erreur à la compilation, à l'execution ou le comportement inadéquat.

    Cordialement

  14. #14
    Membre expérimenté Avatar de Bily.sdi
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 208
    Par défaut
    nouss,

    tu as surement un problème de lien entre tes composants !?

    regarde ici g posté qqch :
    http://www.developpez.net/forums/sho...d.php?t=540471


    say , pour ton dernier msg
    Ils savent que c'est possible mais ils ne le font pas (developpez.com)

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 17
    Par défaut
    j'ai pu résoudre une partie de mes problèmes, en fait il fallait ce focaliser sur les colonnes des Id des tables.

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

Discussions similaires

  1. [MySQL] Gérer des fichiers en sql
    Par 5c0rPi0n dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 24/02/2010, 17h21
  2. affectation des var dans une requette sql
    Par kroma23 dans le forum Bases de données
    Réponses: 7
    Dernier message: 26/01/2009, 09h21
  3. requette SQL sur des dates..
    Par petitcoucou31 dans le forum Bases de données
    Réponses: 1
    Dernier message: 02/11/2006, 19h55
  4. Réponses: 3
    Dernier message: 06/07/2006, 09h47
  5. requette sql compliqué sous delphi
    Par developpeur_mehdi dans le forum Bases de données
    Réponses: 3
    Dernier message: 10/03/2004, 16h33

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