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 :

appel proc stock dans java plante:unchained transaction mode. The 'SET CHAINED OFF'


Sujet :

JDBC Java

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 53
    Points : 23
    Points
    23
    Par défaut appel proc stock dans java plante:unchained transaction mode. The 'SET CHAINED OFF'
    Bonjour

    Je cherche appeller une proc stock à partir de java.
    Ma proc est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    toto avec 5 paramétres
    @titi
    @tata
    @toti
    @tito
    @tati
    j'ai executé le code suivant pour l'appeller en java mais y a comme un souci
    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
    24
    25
    26
    27
    28
    29
    30
    31
     
     
    try {
     
                            CallableStatement cstmt = dbSybaseConnectionManager.prepareCall("{? = CALL toto(?,?,?,?,?)}");
     
                            CallableStatement cstmt = dbSybaseConnectionManager.prepareCall("{? = CALL sp_Retro_AddTrade(?,?,?,?,?)}");
     
                            cstmt.registerOutParameter(1, Types.VARCHAR);
     
                            cstmt.registerOutParameter(2, Types.VARCHAR);
     
                            cstmt.registerOutParameter(3, Types.VARCHAR);
     
                            cstmt.registerOutParameter(4, Types.DOUBLE);
     
                            cstmt.registerOutParameter(5, Types.DOUBLE);
     
                            cstmt.setString(1,titi);
     
                            cstmt.setString(2,tata);
     
                            cstmt.setString(3,toti);
     
                            cstmt.setDouble(4,tito);
     
                            cstmt.setDouble(5,tati);
     
                            cstmt.execute();                    } catch (SQLException e) {
                            log.error(e);
                        }
    Il me parle d'un mode de chaînage que je comprends pas à 5.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    18:12:51,879 [ERROR] [LogImpl.java:81] - java.sql.SQLException: Stored procedure totomay be run only in unchained transaction mode. The 'SET CHAINED OFF' command will cause the current session to use unchained transaction mode.
    je ne comprends pas d'ou vient le souci

  2. #2
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 53
    Points : 23
    Points
    23
    Par défaut
    qui a déjà eu ce souci dans son code.

    thanks

  3. #3
    Candidat au Club
    Inscrit en
    Janvier 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    j'ai eu le problème aujourd'hui. je l'ai résolu en faisant:

    EXEC sp_procxmode 'PS_XXX','Anymode'
    GO

    je ne suis pas un spécialiste mais je crois avoir compris que les INSERT, UPDATE, etc démarrent des transactions de manière automatique, que tu dois valider explicitement par un commit, ou en exécutant la requete en mode autocommit.

    en espérant que ca t'aide,
    remy.

  4. #4
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 53
    Points : 23
    Points
    23
    Par défaut
    je teste ta solution de suite

    thanks

  5. #5
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 53
    Points : 23
    Points
    23
    Par défaut
    maintenant j'ai une autre erreur incomprehensible.

    Quand j'execute ma proc à partir du code VB je n'ia aucun souci et là j'ai l'erreur suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java.sql.SQLException: The parameter '@titi' in the procedure 'toto was not declared as an OUTPUT parameter.
    t'avais cette erreur aussi!

  6. #6
    Candidat au Club
    Inscrit en
    Janvier 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    je ne peux pas repondre pour le VB mais l'erreur semble provenir de SyBase. Tes parametres sont ils déclarés comme ca?:

    create procedure PS_TOTO
    (
    -- OUT
    @toto int Output,
    @titi varchar(200) Output,
    @tata varchar(200) Output
    )
    as
    begin
    ....

  7. #7
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 53
    Points : 23
    Points
    23
    Par défaut
    en faisant au lieu de ça marche je ne comprends pas. Non ils ne sont pas déclarés comme cela.

Discussions similaires

  1. Réponses: 11
    Dernier message: 14/01/2009, 12h03
  2. appel de proc stock dans shells unix
    Par fguigui dans le forum Oracle
    Réponses: 20
    Dernier message: 05/04/2007, 14h05
  3. [ pl/sql ] appel porocedure stocké en java
    Par hocinema dans le forum PL/SQL
    Réponses: 1
    Dernier message: 17/01/2007, 11h39
  4. Réponses: 2
    Dernier message: 20/03/2006, 09h39
  5. [PL/SQL] Appel procédure stockée dans trigger
    Par Félia dans le forum Oracle
    Réponses: 3
    Dernier message: 24/01/2005, 17h25

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