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 :

[CallableStatement] Récupérer le résultat d'une procédure stockée


Sujet :

JDBC Java

  1. #1
    Membre confirmé Avatar de Kihmé Xs
    Inscrit en
    Janvier 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Janvier 2007
    Messages : 549
    Points : 491
    Points
    491
    Par défaut [CallableStatement] Récupérer le résultat d'une procédure stockée
    Bonjour à tous,

    Je viens de modifier tout mon poste car j'ai fais pas mal de modifications, au final j'y arrive toujours pas, lol.

    Comme ma procédure stockée est en fait une fonction : elle dispose d'un return j'utilise le CallableStatement.

    J'ai suivit très attentivement la FAQ JDBC, j'ai à peut prêt ligne pour ligne la même chose. Pourtant lors de l'exécution j'ai une erreur. D'après l'erreur (exception) générée mon string contenant ma chaine d'appel est mal fait. Mon premier " {" est refusé pourtant je le trouve dans la FAQ et dans un livre Java.

    Si quelqu'un maitrise les CallableStatement je lui serais reconnaissant de m'aider.

    Voici ma méthode, dans ma classe Connexion, qui s'occupe de la procédure stockée sur laquelle je suis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    public int nbRestant(int ref)//méthode d'appel de la procédure stockée nbRestant
        {
            int nb = 0;
            String req = "{? = nbRestant(?)}";//chaine d'appel de la procédure stockée
            try
            {
                //préparation de l'appel de la procédure
                CallableStatement cs = conn.prepareCall(req);
                //définition du paramètre de sortie
                cs.registerOutParameter( 1, Types.INTEGER);
                //définition du paramètre d'entrée
                cs.setInt(2, ref);
                //exécution
                cs.execute();
                nb = cs.getInt(1);
            }
            catch (SQLException e)
            {
                e.printStackTrace();
            }
            return nb;
        }

  2. #2
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    Citation Envoyé par Kihmé Xs Voir le message
    J'ai suivit très attentivement la FAQ JDBC, j'ai à peut prêt ligne pour ligne la même chose.
    C'est preque ça effectivement ...

    Il manque le call je pense :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String req = "{? = call nbRestant(?)}";//chaine d'appel de la procédure stockée
    De plus si ta fonction est déclarée dans un package ou un autre schéma, n'oublies pas de le préciser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String req = "{? = call my_pkg.nbRestant(?)}";//chaine d'appel de la procédure stockée
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  3. #3
    Membre confirmé Avatar de Kihmé Xs
    Inscrit en
    Janvier 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Janvier 2007
    Messages : 549
    Points : 491
    Points
    491
    Par défaut
    oh mais ouai, je suis bête le call. Je vais tester ça dans la semaine. Merci beaucoup.

    Ma fonction n'est pas déclarée dans un package, elle l'est diréctement dans la base de données, c'est grave?

  4. #4
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    Citation Envoyé par Kihmé Xs Voir le message
    Ma fonction n'est pas déclarée dans un package, elle l'est diréctement dans la base de données, c'est grave?
    non, bien sûr que non ... c'était juste pour "au cas où"
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  5. #5
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 186
    Points : 67
    Points
    67
    Par défaut
    bonjour j'ai aussi un petit soucie,

    j essaye de migrer d oracle Forms vers J2EE et mon application comporte pas mal de procédures stocké; alors je voudrais en premier laisser ces procédures dans la base et les appeler dans mes beans;

    je pourrais avoir un lien ou un doc où est détaillée l utilisation des callablestatement

    merci

Discussions similaires

  1. [Débutant] récupérer le résultat d'une procédure stockée
    Par HeleneaLuwina dans le forum VB.NET
    Réponses: 4
    Dernier message: 24/02/2012, 11h47
  2. [DELPHI 6.0][ADO] Récupérer le résultat d'une procédure stockée
    Par Invité dans le forum Bases de données
    Réponses: 3
    Dernier message: 26/05/2008, 10h24
  3. Comment récupérer le résultat d'une procédure stockée (OUT parameter) ?
    Par java2008 dans le forum Interfaces de programmation
    Réponses: 1
    Dernier message: 08/04/2008, 13h00
  4. Récupérer le résultat d'une procédure stockée
    Par DanZzz dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 28/11/2006, 22h08
  5. [C#] Récupérer le résultat d'une procédure stockée
    Par fabrice1596 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 18/10/2004, 13h45

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