Requête paramétrées

Fermé
soos - 15 juil. 2002 à 12:14
 soos - 15 juil. 2002 à 15:57
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 39407 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 9 décembre 2024 2 104
15 juil. 2002 à 13:17
quel language bitte ???????????????????????????????,,,

Chouba
"Obsédé des travaux manuels non pratiquant"
0
Java
0
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
15 juil. 2002 à 14:36
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 39407 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 9 décembre 2024 2 104
15 juil. 2002 à 14:46
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
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
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
15 juil. 2002 à 15:53
Elle de type string
0

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

Posez votre question
choubaka Messages postés 39407 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 9 décembre 2024 2 104
15 juil. 2002 à 15:42
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
tu peux être plus clair Chouba?
merci
0