Récupérer requete en JDBC

Résolu
super_toinou Messages postés 764 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 8 mars 2011 - 19 avril 2007 à 09:51
xpmich Messages postés 62 Date d'inscription lundi 29 novembre 2004 Statut Membre Dernière intervention 11 mars 2010 - 4 déc. 2009 à 07:59
Yop yop tout le monde,

voila j ai une question toute bete et j trouve pas la réponse ! :D
Quand on fait :

String sql = "une requete sql";
PreparedStatement stmt = con.prepareStatement(sql);

Est ce que y a moyen après de récupérer la requete sql à partir du stmt ??

Mici !!
++ Toinou

3 réponses

zieunoir Messages postés 14 Date d'inscription lundi 2 avril 2007 Statut Membre Dernière intervention 27 avril 2007
23 avril 2007 à 10:04
Salut,

Je pense que tu ne peux pas récupérer la requete à partir du PrepareStatement où si c'est le cas je ne sais pas comment, par contre, tu as la requete en entrée donc tu peux la logger facilement.

Ensuite, tu rajoutes un try catch sur SQLException et tu as l'erreur oracle si ça plante.

En tout cas, c'est comme ça que je fais.

Zieunoir
3
super_toinou Messages postés 764 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 8 mars 2011 6
23 avril 2007 à 10:23
Yop yop,

merci pour la réponse, en fait je voulais faire l inverse de mon exemple (mais c etait plus simple de le montrer comme ca), j voulais avoir le PrepareStatement en entrée sans connaitre la requete sql associée et donc récupérer cette requete apres.
De tte facon d apres ce que j ai vu ailleurs ca a pas l air d etre faisable pour la raison suivante (je pense) si la requete est
select * from TRUC where id=? and login="toto"
et que tu valorise avec id = 2 tu pourra pas faire la distinction avec la requete suivante passée en entrée :
select * from TRUC where id=2 and login="?" valorisé avec login=toto

Merci en tt cas,
++ Toinou
3
xpmich Messages postés 62 Date d'inscription lundi 29 novembre 2004 Statut Membre Dernière intervention 11 mars 2010
4 déc. 2009 à 07:59
Bonjour,

Je suis d'accord avec toi, on ne peut pas faire le distinguo. Cependant, si l'envie est juste de connaître les requêtes émises à la bases.
Est-il possible, uniquement avec le PrepareStatement de récupérer la requête complète ?

Exemple :
select * from TRUC where id=2 and login="?" valorisé avec login=toto

Valeur voulue :
select * from TRUC where id=2 and login="toto"

Merci d'avance. Xpmich
0
Rejoignez-nous