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 :

JayBird et Procédures Stockées


Sujet :

JDBC Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 4
    Points : 6
    Points
    6
    Par défaut JayBird et Procédures Stockées
    Bonjour


    Je viens à vous car je n'arrive pas à trouver une solution satisfaisante (... en fait qui marche serait un bon début) pour récupérer l'ID d'une insertion qui vient d'être effectuée dans ma base de donnée.


    J'ai essayé plusieurs piste :

    Insertion avec clause RETURNING <= Not implemented Yet.



    Je suis donc parti sur la création d'une procédure stockée qui ferait cet office :

    Procédure Stockée avec un RETURNING et un paramètre de sortie pour commencer.

    Puis, plus classique : Procédure Stockée qui fait un insert, puis renvoi en paramètre de sortie la valeur actuelle du générateur de la classe.

    Souci :

    Il semblerait que la fonction FBCallableStatement.registerOutParameter() soit elle aussi " Not Implemented Yet".


    Y'a t'il un autre moyen pour récupérer un paramètre de sortie d'une procédure ?

    J'ai vraiment pas envie de passer par deux requête, pas très propre et je ne sais si cela garantirait le résultait, par exemple en cas de deux insertions "simultanées" dans la table.


    Merci d'avance pour vos réponses ou pistes éclairées.

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 4
    Points : 6
    Points
    6
    Par défaut
    Voilà, la résolution était au final toute bête.

    Il suffit de se passer du registerOutParameter, enlever un paramètre, et récupérer simplement le résultat du CallableStatement.

    On passe de, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    FBCallableStatement cstmt = (FBCallableStatement) conn.prepareCall("{call NomProcedure(?,?,?)}");
            cstmt.setInt(1, val);
            cstmt.setString(2, val);
            cstmt.registerOutParameter(3, Types.INTEGER);
            cstmt.execute();
     
           int retour = cstmt.getInt(3); // 3 correspond au 3eme param => outparam
     
            cstmt.close();


    A quasiment la même chose : un paramètre de retour en moins , récupération directe du RETURNS de la procédure plutôt que d'aller chercher le paramètre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    FBCallableStatement cstmt = (FBCallableStatement) conn.prepareCall("{call NomProcedure(?,?)}");
            cstmt.setInt(1, val);
            cstmt.setString(2, val);
            cstmt.execute();
     
           int retour = cstmt.getInt(1); // 1 correspond au retour de la proc
     
            cstmt.close();
    Légère différence de Firebird avec les BD que je connaissais, j'édite le sujet

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. passage d'un nom de table dans une procédure stockée
    Par thierry V dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 26/07/2010, 16h48
  2. Procédure stocké:Insert et renvoie de la clé primair
    Par caramel dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 17/04/2003, 09h34
  3. [Pervasive SQL ] procédure stockée
    Par magellan dans le forum Autres SGBD
    Réponses: 2
    Dernier message: 25/10/2002, 13h17
  4. Explication procédure stockée
    Par underworld dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/09/2002, 10h51
  5. [Comparatif] Procédures stockées, triggers, etc.
    Par MCZz dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 28/08/2002, 12h27

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