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

  1. choubaka Messages postés 5534 Date d'inscription   Statut Modérateur Dernière intervention   2 113
     
    quel language bitte ???????????????????????????????,,,

    Chouba
    "Obsédé des travaux manuels non pratiquant"
    0
  2. soos
     
    Java
    0
    1. 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
      1. 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
  3. choubaka Messages postés 5534 Date d'inscription   Statut Modérateur Dernière intervention   2 113
     
    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
  4. 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
    1. 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
      1. soos > kevin
         
        Elle de type string
        0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. choubaka Messages postés 5534 Date d'inscription   Statut Modérateur Dernière intervention   2 113
     
    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
  7. soos
     
    tu peux être plus clair Chouba?
    merci
    0