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

JDBC Java Discussion :

problème d'insertion dans une base


Sujet :

JDBC Java

  1. #1
    Membre régulier Avatar de wiss20000
    Inscrit en
    Août 2006
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 225
    Points : 82
    Points
    82
    Par défaut problème d'insertion dans une base
    salut,
    j'ai un problème l'ors de l'exécution d'un code et voici la perti ou se situ le problème
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	stmt.execute("create table test01 ('"+x[0][0]+ "' TEXT);");
    		        	for (int z = 1;z <(x[0].length-2);z++){
    		        	stmt.execute("alter table test01 add column '"+x[0][z]+"' TEXT) ;");  
    		        	}
    		        	for (int z = 1;z <(x.length-2);z++){
    		        		for (int i=0;i< x[z].length; i++){
    		        		stmt.execute("insert into Table1 ('"+x[0][i]+"') values ('"+ x[z][i]+"')");
    		        	}
    		        	}
    avec x[][] tablteau de tableau de type string
    le méssage d'erreur et le suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    L'instruction INSERT INTO contient le nom de champ inconnu suivant : ''Date''. Assurez-vous que vous avez correctement saisi le nom, puis recommencez l'opération.
    à propos la table contient le champ 'date'

  2. #2
    Membre habitué Avatar de nicgando
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    128
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 128
    Points : 163
    Points
    163
    Par défaut
    Il y a quoi dans ton double tableau ?
    Fait un affichage
    Pushing the limits ...

  3. #3
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Si t'essaye de crée une colonne ayant le nom date je crois que ca ne passe pas, en tout cas sous oracle ca ne passe pas.
    Une solution a été apporté pour résoudre votre problème alors vous aussi faites en profitez les autres grâce au tag qui se trouve tout en bas de la page....

    Merci de ne pas utiliser les messages privés pour un problème sauf si je vous l'ai explicitement demandé.

    -- Maxf1 --

  4. #4
    Membre régulier Avatar de wiss20000
    Inscrit en
    Août 2006
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 225
    Points : 82
    Points
    82
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Date,Time,Object,INSTAT:CA Nr,MSC_HO:CA_HO Nr,MSC_LD:CA_IAMICT Nr
    2007/02/25,19:15,MSC01,119452.0,20282.0,88899.0,93308.0,644640.0
    2007/02/25,19:15,MSC09,193339.0,24886.0,4350.0,182744.0,110085.0
    2007/02/25,21:00,MSC02,288652.0,16632.0,50999.0,268355.0,558504.0
    ce ci est un extrait de mon tableau

  5. #5
    Membre averti Avatar de Rei Angelus
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2006
    Messages
    292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2006
    Messages : 292
    Points : 356
    Points
    356
    Par défaut
    Je pense que le problème viens d'une mauvaise utilisation des '.

    Elles servent à délimiter les valeurs de type 'chaine de caracteres' et non les noms de colonnes.

    Cela devrait donner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    stmt.execute("create table test01 ("+x[0][0]+ " TEXT);");
     
    for (int z = 1;z <(x[0].length-2);z++){
           	stmt.execute("alter table test01 add column "+x[0][z] + "TEXT) ;");  
       	}
    for (int z = 1;z <(x.length-2);z++){
                 for (int i=0;i< x[z].length; i++){
    	           stmt.execute("insert into Table1 ("+x[0][i]+") values ('"+ x[z][i]+"')");
    	}
    }

  6. #6
    Membre régulier Avatar de wiss20000
    Inscrit en
    Août 2006
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 225
    Points : 82
    Points
    82
    Par défaut
    Citation Envoyé par Rei Angelus
    Je pense que le problème viens d'une mauvaise utilisation des '.

    Elles servent à délimiter les valeurs de type 'chaine de caracteres' et non les noms de colonnes.

    Cela devrait donner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    stmt.execute("create table test01 ("+x[0][0]+ " TEXT);");
     
    for (int z = 1;z <(x[0].length-2);z++){
           	stmt.execute("alter table test01 add column "+x[0][z] + "TEXT) ;");  
       	}
    for (int z = 1;z <(x.length-2);z++){
                 for (int i=0;i< x[z].length; i++){
    	           stmt.execute("insert into Table1 ("+x[0][i]+") values ('"+ x[z][i]+"')");
    	}
    }
    j'ai suivit votre instruction le message d'erreur suivant est apparu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe dans la définition de champ.

  7. #7
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 311
    Points : 9 526
    Points
    9 526
    Billets dans le blog
    1
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre régulier Avatar de wiss20000
    Inscrit en
    Août 2006
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 225
    Points : 82
    Points
    82
    Par défaut
    Citation Envoyé par OButterlin

  9. #9
    Membre régulier Avatar de wiss20000
    Inscrit en
    Août 2006
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 225
    Points : 82
    Points
    82
    Par défaut
    Citation Envoyé par OButterlin
    ce ci ne m'a pas aider

  10. #10
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 311
    Points : 9 526
    Points
    9 526
    Billets dans le blog
    1
    Par défaut
    Je voulais juste te prévenir qu'avec certaines DB, tu ne peux pas créer de colonne portant un nom réservé (Date, Time, etc...)
    Comme tu n'as pas dit quelle base tu utilises....

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  11. #11
    Membre régulier Avatar de wiss20000
    Inscrit en
    Août 2006
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 225
    Points : 82
    Points
    82
    Par défaut
    j'ai changer mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for (int z = 0;z <(x[0].length-2);z++){
    		            stmt.execute("Alter table test01 add \""+x[0][z]+"\" varchar(50)");
    ca marche mais maintenant j'ai un problème d'insertion
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    for (int z = 1;z <(x.length-2);z++){
    		        		  for(int j=0;j<x[z].length;j++){
                                   String str = x[z][j];
    	                           cumul=cumul+","+str+"";
    	                     }
    		        		  System.out.println(cumul);
    		        		  String s="insert into test01 values ("+cumul+")";
     
                              stmt.execute(s);
    message d'erreur indiquant une errer dans l'instruction INSERT INTO

  12. #12
    Membre expérimenté Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Points : 1 639
    Points
    1 639
    Par défaut
    Fais un System.out.println(s); apres avoir genere ta requete.

    Execute la dans ta base de donnees et vois si tu as une erreur a ce niveau !

  13. #13
    Membre régulier Avatar de wiss20000
    Inscrit en
    Août 2006
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 225
    Points : 82
    Points
    82
    Par défaut
    tout est réglé voici la solution
    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
     try {
     
    		        	stmt.execute("create table test01 ");
                     	for (int z = 0;z <(x[0].length);z++){
    		            stmt.execute("Alter table test01 add \""+x[0][z]+"\" varchar(50)");        	
    		        	}
     
     
    		        		for (int z = 1;z <(x.length-2);z++){
    		        			String cumul=""+"'"+x[z][0]+"'";
    		        		  for(int j=1;j<x[z].length;j++){
                                   String str = x[z][j];
    	                           cumul=cumul+",'"+str+"'"; 
    	                     }
    		        		 // System.out.println(cumul);
    		        		  String s="insert into test01 values ("+cumul+")";
    		        		  //System.out.println(s);
                              stmt.execute(s);
     
     
    		        	}
    		        	con.close();
    		        } catch (Exception e) {
    		            System.err.println("problems with SQL sent to "+URL+
    		                ": "+e.getMessage());
    		        }




  14. #14
    Membre averti Avatar de Rei Angelus
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2006
    Messages
    292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2006
    Messages : 292
    Points : 356
    Points
    356
    Par défaut
    Felicitations !

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

Discussions similaires

  1. problème d'insertion dans une base
    Par guy_antoine_mav dans le forum Accès aux données
    Réponses: 7
    Dernier message: 12/11/2009, 17h19
  2. problème d'insertion dans une base SQL Server 2000 Via un trigger
    Par Alexandre_g dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/04/2009, 15h30
  3. problème d'insertion dans une base MySql
    Par cerco1 dans le forum JDBC
    Réponses: 13
    Dernier message: 01/10/2007, 20h40
  4. Problème d'insertion dans une base de donnèes
    Par atout dans le forum Administration
    Réponses: 14
    Dernier message: 27/12/2006, 07h07
  5. problème d'insertion dans une base de données
    Par belmansour tidjani dans le forum JDBC
    Réponses: 7
    Dernier message: 18/01/2006, 22h13

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