problème de syntaxe sql

problème de syntaxe sql - SQL/NoSQL - Programmation

Marsh Posté le 10-05-2003 à 23:15:36    

Salut à tous
 
j'essaye de mettre à jour une bd access avec une servlet java j'ai un problème avec une variable entière.
 
Code :  
Statement s;
int note = 3;
String sql = "update PAPIER set note="+note+"  
where numero="+papier+""+"";
s.executeUpdate(sql);
 
note est enregistré dans la base comme un entier ainsi que dans le source. le résultat lance une SQLexception.
Le code est bon puisque si l'on modifie une chaîne de caractères ça marche.
Je suis convaincu qu'il s'agit d'un problème de syntaxe pouvez-vous m'aider?

Reply

Marsh Posté le 10-05-2003 à 23:15:36   

Reply

Marsh Posté le 10-05-2003 à 23:56:49    

Affiche le contenu de la chaine de caractères sql avant de l'exécuter [:proy]  
 
Le fin me semble bizarre. A quoi ca sert de concaténer 2 chaines vides ? :heink:  
... +""+"";

Reply

Marsh Posté le 11-05-2003 à 00:02:26    

mrBebert a écrit :

Affiche le contenu de la chaine de caractères sql avant de l'exécuter [:proy]  
 
Le fin me semble bizarre. A quoi ca sert de concaténer 2 chaines vides ? :heink:  
... +""+"";


 
En effet c'est une erreur de frappe cependant au final note plante toujours!

Reply

Marsh Posté le 11-05-2003 à 00:32:03    

Et "papier", il sait ce que c'est ?
Le mieux, c'est que tu fasses afficher la requête avant de l'exécuter, et de la passer "à la main" dans le SGBD pour voir ce qu'il en pense.

Reply

Marsh Posté le 11-05-2003 à 09:16:35    

Code :
  1. "update PAPIER set note="+note+" 
  2. where numero="+papier+""+"";


 
Il manque a mon avis des espaces dans ta chaine
Si je remplace note et papier par des valeurs par,on obtient :
 
update PAPIER set note=12where numero=34;
entre le 12 et where pas d'espace ;)

Reply

Marsh Posté le 11-05-2003 à 10:57:30    

En fait c'est un truc débile il faut écrire :
 
String sql = "update PAPIER set [note]="+note+"  
where numero="+papier+""+"";  
s.executeUpdate(sql);  
 
la même chose avec note entre [], vive microsoft!!!!! Franchement perdre des heures sur ce genre de dérail idiot!!!!

Reply

Marsh Posté le 12-05-2003 à 20:08:53    

T'as qu'à normer le nom de tes champs et de tes tables.
 
Parceque "note" n'est pas un mot réservé, j'en déduit que c'est donc soit une table, soit une procédure stockée, ou une vue...
 
Quand on préfixe proprement le nom de ses objets, on a pas de problème.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed