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 :

[ADOQuery] Multiple INSERT


Sujet :

C++Builder

  1. #1
    Membre actif
    Avatar de lanonyme
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    229
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 229
    Points : 290
    Points
    290
    Par défaut [ADOQuery] Multiple INSERT
    Bonjour,

    J'ai de nouveau un probleme avec le composant ADOQuery.

    Pour effectuer des SELECT, pas de probleme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     ADOQuery->SQL->Clear() ;
    // activity
     ADOQuery->SQL->Add("INSERT INTO Activity VALUES(" + IntToStr(IdUtilisateur) + "," + LETpsAvtAvertissement->Text + ")");
     // Event
     for (i=0; i< CLBEvent->Count; i++)
     {
        ADOQuery->SQL->Add("INSERT INTO Event VALUES('" + IntToStr(IdUtilisateur) + "," + IntToStr(i) + ",'" + BoolToStr(CLBEvent->Checked[i],true) + "')") ;
     }
    J'efface bien les données de mon query avant de rajouter, tout les requetes d'insertions.

    Ensuite je l'execute de la facon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        ADOQuery->Connection = ADOConnection ;
         try
         {
            ADOQuery->Prepared = true;
            ADOQuery->ExecSQL(); // Open();
         }
    J'utilisai le Open() pour mes selections, mais apparement il faut utiliser ExecSQL() pour les insert.

    L'erreur que j'obtient est erreur de syntaxe SQL... est ce que cela vient du fait que j'ajoute plusieurs instructions a la suite ?

    EDIT:
    Apparement, l'execution d'un insert unique marche, alors ma question devient:
    Comment faire pour en executer plusieurs ?

    lanonyme

  2. #2
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    Citation Envoyé par lanonyme
    Bonjour,

    J'ai de nouveau un probleme avec le composant ADOQuery.

    Pour effectuer des SELECT, pas de probleme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     ADOQuery->SQL->Clear() ;
    // activity
     ADOQuery->SQL->Add("INSERT INTO Activity VALUES(" + IntToStr(IdUtilisateur) + "," + LETpsAvtAvertissement->Text + ")");
     // Event
     for (i=0; i< CLBEvent->Count; i++)
     {
        ADOQuery->SQL->Add("INSERT INTO Event VALUES('" + IntToStr(IdUtilisateur) + "," + IntToStr(i) + ",'" + BoolToStr(CLBEvent->Checked[i],true) + "')") ;
     }
    J'efface bien les données de mon query avant de rajouter, tout les requetes d'insertions.

    Ensuite je l'execute de la facon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        ADOQuery->Connection = ADOConnection ;
         try
         {
            ADOQuery->Prepared = true;
            ADOQuery->ExecSQL(); // Open();
         }
    J'utilisai le Open() pour mes selections, mais apparement il faut utiliser ExecSQL() pour les insert.

    L'erreur que j'obtient est erreur de syntaxe SQL... est ce que cela vient du fait que j'ajoute plusieurs instructions a la suite ?

    EDIT:
    Apparement, l'execution d'un insert unique marche, alors ma question devient:
    Comment faire pour en executer plusieurs ?

    lanonyme
    Tu ne peut pas en executer plusieurs en meme temps,
    joute simplement le code de ta deuxieme zone dans la boucle de la premiere, comme ceci :
    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
     
      ADOQuery->SQL->Clear() ;
      // activity
      ADOQuery->SQL->Add("INSERT INTO Activity VALUES(" + IntToStr(IdUtilisateur) + "," + LETpsAvtAvertissement->Text + ")");
      ADOQuery->Connection = ADOConnection ;
      try
      {
          ADOQuery->Prepared = true;
          ADOQuery->ExecSQL(); // Open();
      }
      // Event
      for (i=0; i< CLBEvent->Count; i++)
      {
          ADOQuery->SQL->Clear() ;
          ADOQuery->SQL->Add("INSERT INTO Event VALUES('" + IntToStr(IdUtilisateur) + "," + IntToStr(i) + ",'" + BoolToStr(CLBEvent->Checked[i],true) + "')") ;
         ADOQuery->Connection = ADOConnection ;
         try
         {
             ADOQuery->Prepared = true;
             ADOQuery->ExecSQL(); // Open();
         }
      }
    Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation

    Lisez le magazine de developpez.com.
    Mes tutos : http://pottiez.developpez.com

    La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français

    N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .

  3. #3
    Membre actif
    Avatar de lanonyme
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    229
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 229
    Points : 290
    Points
    290
    Par défaut
    Merci pottiez, ça marche comme ça

    Et puis c'est pas beaucoup plus compliqué

    lanonyme

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

Discussions similaires

  1. [Cobol / DB2] Multiple insert et null value
    Par punkoff dans le forum DB2
    Réponses: 3
    Dernier message: 06/01/2010, 09h47
  2. Multiples INSERT dans deux tables diffèrentes
    Par pcsystemd dans le forum Débuter
    Réponses: 2
    Dernier message: 16/06/2009, 07h50
  3. Upload multiple + insert du nom dans MySQL
    Par abrioit dans le forum Langage
    Réponses: 6
    Dernier message: 09/01/2009, 11h43
  4. Probleme de multiple insert sous ibatis
    Par hellipse dans le forum Persistance des données
    Réponses: 0
    Dernier message: 25/08/2008, 03h28
  5. [Tableaux] seleted multiple insert puis update
    Par digger dans le forum Langage
    Réponses: 2
    Dernier message: 10/07/2006, 15h32

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