Bonjour,
J'ai un problème concernant la construction d'une requête. Je deviens fou !!!
Tout d'abord j'initialise la connection et ma requete
Ensuite si je fais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 //initialisation connection (aucun problème) //...... //initialisation de ma requete String requestAttribute = "select id from poste where id_salarie = ? "
la requête me retourne un resultat, et rsListElement n'est pas vide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 //remplacement manuel du '?' par la valeur requestAttribute = requestAttribute.replaceFirst("\\?","'X12457'"); PreparedStatement currentStatement = connection.prepareStatement(requestAttribute); ResultSet rsListElement = currentStatement.executeQuery(); while (rsListElement.next()){ //Traitements (passe) }
Par contre si je fais :
C'est incompréhensible. je ne vois pas où j'ai fait une erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 PreparedStatement currentStatement = connection.prepareStatement(requestAttribute); currentStatement.setObject(1,"X12457"); ResultSet rsListElement = currentStatement.executeQuery(); while (rsListElement.next()){ //Traitements (ne passe jamais) }
Ce que je souhaite c'est faire fonctionner la 2nd méthode car le paramètre passé n'est pas forcément une String. J'ai écris la requête en dure pour mes tests mais normalement la requête est chargée depuis un document xml, et les paramètres à fournir proviennent du résultat d'une autre base de données. Bref, je dois faire fonctionner la 2nd méthode (setObject(..))
J'ai essayer setString mais c'est le même problème.
J'y crois pas trop mais si quelqu'un aurait une piste.
Merci.
Partager