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

Requêtes MySQL Discussion :

Probleme Insert entiers - chaine de caracteres


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier Avatar de keub51
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 116
    Points
    116
    Par défaut Probleme Insert entiers - chaine de caracteres
    bonjour tout le monde !

    Voila l'intrigue :

    J'ai une base de données SQL où j'ai une table " donnees " dont voici le plan :
    CREATE TABLE `donnees` (
    `Id_Donnee` int(11) NOT NULL default '0',
    `Code_Rubrique` text NOT NULL,
    `Nom_Rubrique` text NOT NULL,
    `Type` text NOT NULL,
    `Longueur` int(11) NOT NULL default '0',
    `Nature` text NOT NULL,
    `Regle_calcul` text NOT NULL,
    `Regle_Integrite` text NOT NULL,
    PRIMARY KEY (`Id_Donnee`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
    J'attire votre attention sur le type de chacun des champs : tous " text " ( donc String ? ) sauf la longueur est l'id qui lui est généré automatiquement grace a une requete simple qui recupere le max+1 id de la table ...

    J'ai une JDialog qui s'affiche a l'écran pour rentrer les champ : code, nom,type..
    voici les champs :

    JButton ok_ajout;
    JButton non_ajout;

    JTextField code;
    JTextField nom;
    Choice type ;
    JTextField longueur;
    JTextField nature;
    JTextField regle1;
    JTextField regle2;

    et voici l'appel de la fonction qui doit inserer les données:
    je transfere tout d'abord les données :

    public void actionPerformed(ActionEvent E) {
    if (E.getSource()== ok_ajout)
    {
    bdd BD=new bdd();
    BD.ajoutDDD(code.getText(),nom.getText(),type.getSelectedItem(),longueur.getText(),nature.getText(),regle1.getText(),regle2.getText());
    this.dispose();
    }
    et ensuite dans un fichier qui gere exclusivement la base de données j'execute ma requete SQL :
    void ajoutDDD(String S1,String S2,String S3,String S4,String S5,String S6,String S7)
    {
    try{
    String requete = null;
    int id=this.selectId();
    requete = "INSERT INTO donnees VALUES("+id+","+S1+","+S2+",type,"+S4+","+S5+","+S6+","+S7+")";
    Statement stmt = connection.createStatement();
    stmt.executeUpdate(requete);
    }
    catch(Exception e)
    {
    System.out.println("erreur : "+e);
    }
    Lorsque les champs sont des nombres tout est bien dans le meilleur des mondes mais des que je met une tite lettre voici la tite erreur :
    erreur : com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Champ 'b' inconnu dans field list
    'b' étant ma chaine de caractere que j'ai essayé d'inserer ...

    Alors pourquoi est il aussi méchant ???

    Merci

  2. #2
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 922
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 922
    Points : 6 038
    Points
    6 038
    Par défaut
    Il me semble qu'une chaine doit être délimitée dans l'insert:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Insert into....values (1,'b','c'....)
    et je ne pense pas que tes S1, S2 etc soient quotées ? (en delphi, il existe 1 fonction QuotedStr(chaine)...)

  3. #3
    Membre régulier Avatar de keub51
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 116
    Points
    116
    Par défaut
    effectivement la bonne requete été

    requete = "INSERT INTO donnees VALUES("+id+",'"+S1+"','"+S2+"','"+S3+"','"+S4+"','"+S5+"','"+S6+"','"+S7+"')";

    avec tout ces quote on sy pert .... merci !!!

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

Discussions similaires

  1. Probleme avec les chaines de caracteres
    Par jesuscrie dans le forum C
    Réponses: 5
    Dernier message: 30/06/2006, 22h56
  2. probleme avec les chaines de caracteres
    Par snake77350 dans le forum C
    Réponses: 11
    Dernier message: 25/04/2006, 18h29
  3. Probleme avec une chaine de caractere
    Par Jim_Nastiq dans le forum Langage
    Réponses: 2
    Dernier message: 07/04/2006, 09h56
  4. probleme sur les chaines de caractere
    Par foufi5 dans le forum C
    Réponses: 8
    Dernier message: 22/12/2005, 15h30
  5. Probleme sur les chaines de caractere
    Par scorpiwolf dans le forum C
    Réponses: 8
    Dernier message: 06/05/2002, 19h01

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