Requête paramétrées

soos -  
 soos -
Salut

Puis je faire une requête paraétrée et mettre une variable ds le paramètre ?
J'arrive à faire la requête mais j'arrive pas à mettre la variable .
pour le paramèter fixe, je fais:

pst.steString(index du parametre, "String") et je voudrais que "String" soit remplacé par une variable.

Merci de me faire part de vos idée.

Soos.

6 réponses

choubaka Messages postés 5526 Date d'inscription   Statut Modérateur Dernière intervention   2 106
 
quel language bitte ???????????????????????????????,,,

Chouba
"Obsédé des travaux manuels non pratiquant"
0
soos
 
Java
0
kevin
 
regarde dans la doc du coté des PreparedStatement.
Je ne me souviens plus de la syntaxe exacte mais le principe grosso modo c'est de preparer ta requete sql et aux endroits où tu veux mettre une variable, tu mets un point d'interrogation. ensuite tu dis pour chaque ? quelle variable tu veux mettre.

N'hesite pas à me redemander si tu as des pbs ou si tu ne comprends pas bien la syntavxe dans la javadoc.

Kevin
0
soos > kevin
 
Kevin,
j'ai fais cela mais mes variables ne sont pas prises en compte. Quand je mets le nom de la variable, c'est considéré coe un string et je ne sais pas quoi faire.

Merci à toi
0
choubaka Messages postés 5526 Date d'inscription   Statut Modérateur Dernière intervention   2 106
 
crée dans ta classe une méthode getMaVariable() qui te renvoie la variable en question

et pis tu fais

pst.steString(index du parametre, getMaVariable())

ou alors donne nous un peu + d'indices

Chouba
"Obsédé des travaux manuels non pratiquant"
0
soos
 
vomment créer la fonction ds une classe différente de celle d la requete et la rappeler ds celle de la requete en temps voulu.

je te joins le code

PreparedStatement pst = conn.prepareStatement(

"SELECT g.nom_gene, g.type, p1.debut, p1.fin, p1.brin "
+ " FROM genes g, position p1"
+ " WHERE g.id_position = p1.id_position "
+ " AND p1.debut > ? "
+ " AND p1.fin < ? "
+ " AND g.type = ? "

+ " UNION SELECT sn.nom_snps,sn.type,p2.debut, p2.fin, p2.brin "
+ " FROM snps sn, position p2 "
+ " WHERE p2.id_position=sn.id_position "
+ " AND p2.debut > ? "
+ " AND p2.fin < ? "
+ " AND sn.type = ? "

pst.setInt(1,0);
pst.setInt(2,50000);
pst.setString(3,MaVariable);

P.S Sachant que la fonction qui récupère dans une variable ne peut pas être là.

Si tu as besoin de plus d'infos je suis à ta dispo

Soos
0
kevin
 
pourquoi tu fais un pst.setString(3,MaVariable) et pas un pst.setInt(3,MaVariable) ?
Sinon c'est normail qu'il te caste implicitement ta variable en String. Enfin il me semble...
De quel type est la variable MaVariable?


A+

kevin
0
soos > kevin
 
Elle de type string
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
choubaka Messages postés 5526 Date d'inscription   Statut Modérateur Dernière intervention   2 106
 
Ben c'est la toute la force de Java

en fait, la classe (classe1)qui prépare le statement doit avoir une référence vers la classe(classe2) qui contient ta variable. Par exemple en mettant cette dernière en attribut. Que tu peux mettre en argument du constructeur de la classe2 par ex.
à ce moment la classe1 peut appeler les méthodes de la classe2 à condition qu'elles soient publiques.

Chouba
"Obsédé des travaux manuels non pratiquant"
0
soos
 
tu peux être plus clair Chouba?
merci
0