problème d'insertion dans une base access

wiss20000
problème d'insertion dans une base access

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

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

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' ce ci est un extrait de mon tableau

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
sebastienj

Je crois bien qu'il ne faut pas protéger le nom des champs par des simples cote :

Ca serait plutot ca :

stmt.execute("insert into Table1 ("+x[0][i]+") values ('"+ x[z][i]+"')");

wiss20000

si j'enlève les double cote
stmt.execute("insert into Table1 ("+x[0][i]+") values ('"+ x[z][i]+"')");
le message d'erreur est le suivant
Erreur de syntaxe dans l'instruction INSERT INTO.

sebastienj

Tu as déjà essayé de récupérer la requête générée : dans un log ou par le déboggeur et ensuite de l'exécuter "à la main" ?

Autre chose : tu utilises test01 comme table et ensuite Table1 : c'est normal ?

wiss20000
[Résolut] problème d'insertion dans une base access

tout est réglé voici la solution

 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());
		        }

:D :D :D :D :D :D :D :D :D :D