|
Réalisation 
|
|
JDBC et les ' et les "
|
Bonjour,
Je poursuis mes questions de débutant heureux de l'être avec les
"statements" "JDBC".
Je voudrais mettre des Strings saisis par des utilisateurs dans des
champs de bases.
Bien entendu, les utilisateurs peuvent mettre des ' et " et encore
d'autres caractères bizarres auxquels je n'ai même pas pensé, qui
provoquent des Syntax Error dans mes requetes SQL, et j'imagine qu'il y a
un truc tout fait qui me "escape" ces caractères... Mais je n'ai rien
trouvé. Où est-ce ?
Merci d'avance.
--
Sur le Web, tout de suite.
Herve AGNOUX - diaam informatique
http://www.diaam-informatique.com
 |
 |
A mon avis seul le ' est a remplacé dans une chaine (il faut le doubler).
Tu peux soit utiliser une fonction 'replace' de ta fabrique (ou alors
utiliser le jdk 1.4 qui propose ce type de fonction)
Plus simple, tu peux aussi utiliser un PreparedStatement (en lieu est
place d'un Statement). JDBC(enfin, le driver qui l'implémente) se charge
alors de doubler les '.
PreparedStatement pstmt = conn.prepareStatement("insert into Table(Col1,
Col2) values (?,?)"; pstmt.setString(1, "Une chaine avec ' et \" et puis
?....."); pstmt.setString(2, "Une autre"); pstmt.executeQuery();
Le seul inconvenient que j'ai trouvé au PreparedStatement concerne les
Dates (Quand on fait un pstmt.setDate). En effet certains drivers (pas
tous quand meme) inversent mois et jours (on obtient alors le 1 mars à la
place du 3 janvier par exemple). La solution que j'ai trouvé est alors
d'utiliser un SimpleDateFormat et de faire un setString
-----Message d'origine-----
De : Herve AGNOUX [mailto:herve.agnoux@diaam-informatique.com]
Envoyé : lundi 18 mars 2002 21:06
À : java@u-strasbg.fr
Objet : JDBC et les ' et les "
Bonjour,
Je poursuis mes questions de débutant heureux de l'être avec les
"statements" "JDBC".
Je voudrais mettre des Strings saisis par des utilisateurs dans des
champs de bases.
Bien entendu, les utilisateurs peuvent mettre des ' et " et encore
d'autres caractères bizarres auxquels je n'ai même pas pensé, qui
provoquent des Syntax Error dans mes requetes SQL, et j'imagine qu'il y a
un truc tout fait qui me "escape" ces caractères... Mais je n'ai rien
trouvé. Où est-ce ?
Merci d'avance.
--
Sur le Web, tout de suite.
Herve AGNOUX - diaam informatique
http://www.diaam-informatique.com