Pb de mise ajour SQL...

Pb de mise ajour SQL... - SQL/NoSQL - Programmation

Marsh Posté le 17-02-2006 à 18:50:07    

Bonjour tout le monde...
 
J'ai un petit probleme sur un programme java... Qui fonctionne avec une nase de donnée sous JDBC avec le langage SQL...
 
voila le code :  
 
                          stmt = up_stat();
//   on se place sur le premier tuple récupé
  String updateString = "UPDATE Table_Auteur SET Prenom = "+getJTextFieldNouvPrenom().getText()+" WHERE ID_Auteur LIKE ’"+ID_auteur+"’";
  System.out.println(updateString);
  try {
   stmt.executeUpdate(updateString);
   
  } catch (SQLException e) {
   // TODO Auto-generated catch block
  e.printStackTrace();
  }
 
 
et up_stat() c'est :  
 
static Statement up_stat()
 {
  Statement stat = null;
  try {
   
    stat = con.createStatement(
     ResultSet.TYPE_SCROLL_SENSITIVE,
     ResultSet.CONCUR_UPDATABLE);
 
   }
  catch (SQLException e)  
  {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return stat;
 }
 
j'ai un souci au niveau de la requette sql, le compilateur me dit "2 parametre attendu", et je ne comprend pas où ca foire...
 
voila la ligne de commande sql...
UPDATE Table_Auteur SET Prenom = nouveauprenom WHERE ID_Auteur LIKE '25'";
 
Id = numero unique de personnes dans la base de donnée
 
merci pour votre aide car là je bloque vraiment...
 
merci @ ceux qui reponderont...


---------------
"Il faudrait construire des asiles de cons, mais vous imaginez la taille des batiments.." - André Dussolier, (Tais-Toi !!!)
Reply

Marsh Posté le 17-02-2006 à 18:50:07   

Reply

Marsh Posté le 18-02-2006 à 13:07:12    

utilise donc des PreparedStatement au lieu de concaténer les paramètres directement dans la requete


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 18-02-2006 à 13:35:36    

ouais mais le probleme reste le meme :( , ca marche pas....


Message édité par aceditnanar le 18-02-2006 à 13:35:50

---------------
"Il faudrait construire des asiles de cons, mais vous imaginez la taille des batiments.." - André Dussolier, (Tais-Toi !!!)
Reply

Marsh Posté le 18-02-2006 à 13:39:29    

t'as vérifié le type de tes paramètres ? parce que tu insères le contenu d'un JTextField à la place de prénom, mais je vois pas les quotes dans la requête pour l'entourer....
 
edit: et ID, si c'est un numéro, tu crois qu'il a besoin de quotes par contre ?
 
edit2 : c'est le genre de souci que tu aurais vu de suite avec des PreparedStatement


Message édité par Harkonnen le 18-02-2006 à 13:41:53

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 18-02-2006 à 15:52:50    

y'a pas de quote pour l'entourer... c'est normal on m'a dit que ca s'ecrivait comme cela.. non?et le ID a besoin de quote car c'est l'element cherché...


---------------
"Il faudrait construire des asiles de cons, mais vous imaginez la taille des batiments.." - André Dussolier, (Tais-Toi !!!)
Reply

Marsh Posté le 18-02-2006 à 15:55:23    

aceditnanar a écrit :

y'a pas de quote pour l'entourer... c'est normal on m'a dit que ca s'ecrivait comme cela.. non?


tu diras à la personne qui t'a sorti ça que c'est un fieffé blaireau ! comme ton prénom est certainement de type texte (String), tu dois l'entourer de quotes dans la requete SQL, comme tous les types String
 

aceditnanar a écrit :


et le ID a besoin de quote car c'est l'element cherché...


mais n'importe quoi ! si ton ID est de type numérique, tu dois virer les quotes


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 18-02-2006 à 16:10:15    

y'a aussi ça qui me fait peur : getJTextFieldNouvPrenom().getText()
c'est quoi ce getJTextFieldNouvPrenom() ?


Message édité par Harkonnen le 18-02-2006 à 16:10:27

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 18-02-2006 à 18:08:58    

c'est une fonction permettant de retourner l'dresse d'un JTEXTFIELD... et get text prend alors la valeur entrée dans ce champs JTF..
mais tout cela fonctionne, on obtient bien la requette :  
UPDATE Table_Auteur SET Prenom = nouveauprenom WHERE ID_Auteur LIKE '25'";  
 
avec nouveauprenom egale a se que l'on a rentré dans le champ...
c'est apres que ca marche pas.. a l'execution de la commande et pourtant juste avant la creation d'un auteur marche nickel, dc la base de donnée est correctement accessible.


---------------
"Il faudrait construire des asiles de cons, mais vous imaginez la taille des batiments.." - André Dussolier, (Tais-Toi !!!)
Reply

Marsh Posté le 18-02-2006 à 18:20:44    

aceditnanar a écrit :

c'est une fonction permettant de retourner l'dresse d'un JTEXTFIELD... et get text prend alors la valeur entrée dans ce champs JTF..


pourquoi ne pas simplement utiliser la variable membre correspondante au lieu d'utiliser un accesseur ? :heink:
 

aceditnanar a écrit :


mais tout cela fonctionne, on obtient bien la requette :  
UPDATE Table_Auteur SET Prenom = nouveauprenom WHERE ID_Auteur LIKE '25'";  
 
avec nouveauprenom egale a se que l'on a rentré dans le champ...
c'est apres que ca marche pas.. a l'execution de la commande et pourtant juste avant la creation d'un auteur marche nickel, dc la base de donnée est correctement accessible.


oui, mais bon sang de bon soir, as tu vérifié le type des paramètres, et as tu mis les quotes là ou il en fallait ??


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 18-02-2006 à 18:57:34    

oui tous fait cela...pb de quote.. maintenant ca marche.. merci...
plus que 500heures de boulot et plus que 72heures reelle a dispo pour terminer mon projet.. ahh!!!!!!!!!!!!
lol
 
@+ :hello:


Message édité par aceditnanar le 18-02-2006 à 19:23:11

---------------
"Il faudrait construire des asiles de cons, mais vous imaginez la taille des batiments.." - André Dussolier, (Tais-Toi !!!)
Reply

Sujets relatifs:

Leave a Replay

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