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 :

Modification d'une base de donnée


Sujet :

C++Builder

  1. #21
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 188
    Points : 182
    Points
    182
    Par défaut
    il faut faire comme dit auparavant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE TaTable ADD COLUMN nom TEXT(25)
    il faut que tu reprenne le modele pour executer une requete, ce qui donne qqchose comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Query_mysql_insert->SQL->Clear();
    AnsiString requete_insert = "ALTER TABLE TaTable ADD COLUMN nom TEXT(25)";
    Query_mysql_insert->SQL->Add(requete_insert) ;
    Query_mysql_insert->ExecSQL();
    Query_mysql_insert->Close();
    si ça marche tjs pas envoi le bout de code qui doit faire cette ajout de colonne qu on y voit + clair

  2. #22
    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
    Bonjour,

    Je pense qu'un petit tour par http://sql.developpez.com/ ne serai pas du luxe

    lanonyme

  3. #23
    Membre à l'essai
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 69
    Points : 18
    Points
    18
    Par défaut
    Le code qui me permet d'ajouter ma colonne est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
          vRange = "B3";
          vCell = vWorksheet.OlePropertyGet("Range",vRange);
          aValue = vCell.OlePropertyGet("Value");
          IBQuery1->SQL->Clear();
          AnsiString requete_insert = "ALTER TABLE RAPPORT ADD COLUMN aValue TEXT(25)";
          IBQuery1->SQL->Add(requete_insert);
          IBQuery1->ExecSQL();
          IBQuery1->Close();
    aValue est un ansistring que je récupère d'excel.

    Lors de la compilation, ca plante au niveau de la ligne soulignée.
    Le message d'erreur est
    "Dinamic SQL error SQL error code = -104
    token unknown line1, char 40
    COLUMN'. Processus stoppé"
    Je comprend pas d'ou peu venir l'erreur!

  4. #24
    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
    Je sais pas si c'est la bonne erreur, mais déjà il faut que tu fasse ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    AnsiString requete_insert = "ALTER TABLE RAPPORT ADD COLUMN " ;
    requete_insert += aValue + " TEXT(25)";
    au lieu de ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AnsiString requete_insert = "ALTER TABLE RAPPORT ADD COLUMN aValue TEXT(25)";
    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 .

  5. #25
    Membre à l'essai
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 69
    Points : 18
    Points
    18
    Par défaut
    J'ai essayé ton code mais l'erreur reste la même.

  6. #26
    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
    J'ai trouvé l'erreur, enfin il me semble :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    AnsiString requete_insert = "ALTER TABLE RAPPORT ADD " ;
    requete_insert += aValue + " TEXT(25)";
    a la place de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    AnsiString requete_insert = "ALTER TABLE RAPPORT ADD COLUMN " ;
    requete_insert += aValue + " TEXT(25)";
    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 .

  7. #27
    Membre à l'essai
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 69
    Points : 18
    Points
    18
    Par défaut
    Maintenant c'est toujours la même erreur mais cette fois ci c'est plus "char40" mais la valeur "char x" dépend de la longueur de la chaine aValue.

  8. #28
    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
    nouvelle modif (désolé) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    AnsiString requete_insert = "ALTER TABLE RAPPORT ADD '" ;
    requete_insert += aValue + "' TEXT(25)";
    on va peut etre y arriver un jour
    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 .

  9. #29
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 188
    Points : 182
    Points
    182
    Par défaut
    tu as testé ta requete directement dans ta BD, avec une valeur bidon pour aValue, pour voir si deja la structurede la requete est bonne?

  10. #30
    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
    Citation Envoyé par scorpion37
    Maintenant c'est toujours la même erreur mais cette fois ci c'est plus "char40" mais la valeur "char x" dépend de la longueur de la chaine aValue.
    le 'char x' indique a partir de quel caractere il trouve que sa pose probleme...

    donc c'est la ou il faut regarder (normalement)

    lanonyme

  11. #31
    Membre à l'essai
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 69
    Points : 18
    Points
    18
    Par défaut
    J'ai essayé directement dans ma BD, l'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE RAPPORT ADD COLUMN ANGLAIS
    et j'ai le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dynamic SQL Error
    SQL error code = -104
    Token unknown - line 1, char 25
    COLUMN
    Statement: ALTER TABLE RAPPORT ADD COLUMN ANGLAIS

  12. #32
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 188
    Points : 182
    Points
    182
    Par défaut
    essaie avec ce que disais pottiez, vire le COLUMN

  13. #33
    Membre à l'essai
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 69
    Points : 18
    Points
    18
    Par défaut
    J'ai essayé et cette fois ci le message est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dynamic SQL Error
    SQL error code = -104
    Unexpected end of command
    Statement: ALTER TABLE RAPPORT ADD ANGLAIS

  14. #34
    Membre à l'essai
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 69
    Points : 18
    Points
    18
    Par défaut
    Maintenant ca marche dans la base de donnée mais pas dans builder.
    Dans builder la ligne passe mais la colone ne se créer pas.
    Dans la base de donnée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
          ALTER TABLE RAPPORT ADD test DTEXT
    Dans builder:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
          requete_insert = "ALTER TABLE RAPPORT ADD test DTEXT " ;
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
          requete_insert = "ALTER TABLE RAPPORT ADD" ;
          requete_insert += test + "DTEXT";

  15. #35
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 188
    Points : 182
    Points
    182
    Par défaut
    je ferais plutot ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     requete_insert = "ALTER TABLE RAPPORTCONFORMITEPINCE ADD ' "+test+" ' " DTEXT";
    Qu est ce que ça te donne comme valeur pour requete_insert qd tu passe le code au debugger?

  16. #36
    Membre à l'essai
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 69
    Points : 18
    Points
    18
    Par défaut
    quand je passe le code au debuggeur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    requete_insert = DATA {"ALTER TABLE RAPPORT ADD test DTEXT "}
    C'est pour ca que je comprend pas pour quoi la colonne ne se créer pas.

  17. #37
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 188
    Points : 182
    Points
    182
    Par défaut
    ya un truc que je pige pas t as aucun message d'erreur?
    tu as toujours
    dans ton code?

    parcequ'avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    requete_insert = "ALTER TABLE RAPPORT ADD test DTEXT " ;
    la colonne "test" devrait etre créée dans la table RAPPORT

    selon moi ça devrait executer ta requete ou te renvoyer une erreur mais pas rien faire

  18. #38
    Membre à l'essai
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 69
    Points : 18
    Points
    18
    Par défaut
    Mon code est exactement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
          IBDatabase1->Connected = true;
          IBQuery1->Open();
          IBQuery1->SQL->Clear();
          aValue= "test";
          requete_insert = "ALTER TABLE RAPPORT ADD " + aValue +  " TEXT";       
          IBQuery1->SQL->Add(requete_insert);
          IBQuery1->ExecSQL();
          IBQuery1->Close();
    et au debugger:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    requete_insert = DATA {"ALTER TABLE RAPPORT ADD test TEXT"}
    Mais rien ne se passe.
    Merci quand même à tous le monde pour l'aide que vous m'avez apporté.

  19. #39
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 188
    Points : 182
    Points
    182
    Par défaut
    du code, pile ce que j'allais te demander

    j'ai testé ca et sur mon pc ca marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Query_creer_famille->SQL->Clear();
      AnsiString requete = " ALTER TABLE azerty ADD test31 TEXT "  ;
      Query_creer_famille->SQL->Add(requete);
      Query_creer_famille->ExecSQL();
      Query_creer_famille->Close();
    et ca aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        Query_creer_famille->SQL->Clear();
      String test = "test51";
      AnsiString requete = " ALTER TABLE azerty ADD "+test+" TEXT "  ;
      Query_creer_famille->SQL->Add(requete);
      Query_creer_famille->ExecSQL();
      Query_creer_famille->Close();

  20. #40
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 188
    Points : 182
    Points
    182
    Par défaut
    c'est quoi le type de ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 4 PremièrePremière 1234 DernièreDernière

Discussions similaires

  1. modification d'une base de donnée
    Par orzhov dans le forum VB.NET
    Réponses: 5
    Dernier message: 18/07/2008, 09h08
  2. Réponses: 2
    Dernier message: 27/02/2008, 12h19
  3. Problème lors d'une modification d'une base de données
    Par 4rocky4 dans le forum Modélisation
    Réponses: 2
    Dernier message: 08/01/2008, 16h04
  4. Réponses: 17
    Dernier message: 18/07/2007, 15h46
  5. [VB.net 2003] Annuler les dernieres modifications d'une base de donnée
    Par winny107 dans le forum Accès aux données
    Réponses: 2
    Dernier message: 10/10/2006, 07h05

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