IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

[JDBC]Invalid Operation : Type de ResultSet


Sujet :

JDBC Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 197
    Points : 56
    Points
    56
    Par défaut [JDBC]Invalid Operation : Type de ResultSet
    slt a tous

    j'utilise un resulset, et lorsque je fait

    rs.beforeFirst();
    while (rs.next()) { ...

    j'ai une erreur

    javax.servlet.ServletException: Invalid operation for forward only resultset : beforeFirst

    quelqu'un aurait t'il une idee svp? merci d'avance

  2. #2
    NGY
    NGY est déconnecté
    Membre habitué
    Inscrit en
    Août 2002
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 137
    Points : 164
    Points
    164
    Par défaut
    Le type de recordset que tu utilises ne supporte pas l'opération beforeFirst() .
    C'est parce que ton recordset est de type FORWARD_ONLY, c.à.d. que tu ne peux qu'avancer dans la liste des résultats (c'est plus performant).
    Plus d'infos sur la !

  3. #3
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut Re: resultset beforeFirst()
    Salut,

    Citation Envoyé par zizou771
    j'utilise un resulset, et lorsque je fait

    rs.beforeFirst();
    while (rs.next()) { ...
    Par défaut les ResultSet ne peuvent être lu que dans un sens et donc tu ne peux utiliser que next() et le beforeFirst() est inutile (c'est déjà l'état de ton ResultSet lorsque tu le récupère depuis ta requête).

    Si tu veux pouvoir te déplacer librement dans ton ResultSet, il faut qu'il soit "Scrollable" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Statement st = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
    Plus d'info dans la FAQ : Quels sont les différents types de ResultSet ?

    a++

    [edit] et bien je suis de plus en plus lent à taper...

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 197
    Points : 56
    Points
    56
    Par défaut
    ok merci , par contre dans la faq il utilise un statement, mais moi c'est un callableStatement.
    et donc si je fait:


    CallableStatement cs;
    ResultSet rs;

    cs = ConnexionDataSource.createStatement("call maProcedure (?, ?)", ResultSet.TYPE_FORWARD_ONLY,
    ResultSet.CONCUR_READ_ONLY);

    ca marche pas!!??
    en effet dans la javadoc il n'y a pas de createStatement(string,int,int)
    comment fait on dans ca cas??

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 197
    Points : 56
    Points
    56
    Par défaut
    enfin la j'ai mis ResultSet.TYPE_FORWARD_ONLY c'est deja pour tester

  6. #6
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par zizou771
    en effet dans la javadoc il n'y a pas de createStatement(string,int,int)
    comment fait on dans ca cas??
    Heu... Les CallableStatement sont créés par les méthodes prepareCall() dont prepareCall(String,int,int)...

    a++

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 197
    Points : 56
    Points
    56
    Par défaut
    oui c vrai mais ca me sort:

    cannot resolve symbol
    symbol : method prepareCall (java.lang.String,int,int)

    jusqu'a present j'utlisait crateStatement(string sql) et ca marchait mais la...??
    pourtant j'importe bien java.sql.*

  8. #8
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par zizou771
    cannot resolve symbol
    symbol : method prepareCall (java.lang.String,int,int)
    Tu utilises quel version de java/jdbc ???

    Citation Envoyé par zizou771
    jusqu'a present j'utlisait crateStatement(string sql) et ca marchait mais la...??
    createStatement() ne permet pas de créer des CallableStatement !!!
    Je ne comprend pas trop... il faudrait que tu nous montre ton code en indiquant bien le type exact des objets...

    a++

Discussions similaires

  1. JDBC firebird : quel type choisir?
    Par eponette dans le forum JDBC
    Réponses: 2
    Dernier message: 16/02/2007, 19h13
  2. [Oracle][JDBC] Récupération du type LONG
    Par ZeKiD dans le forum JDBC
    Réponses: 3
    Dernier message: 08/09/2005, 13h29
  3. [JDBC] Persistence d'update de ResultSet
    Par Jie.N dans le forum JDBC
    Réponses: 8
    Dernier message: 22/08/2005, 18h15
  4. Réponses: 2
    Dernier message: 19/04/2005, 15h29
  5. [XMLRAD] invalid character type
    Par Sylvain James dans le forum XMLRAD
    Réponses: 4
    Dernier message: 10/12/2002, 07h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo