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

Adaptive Server Enterprise Sybase Discussion :

[ASE 12.5.4] problème de procédure


Sujet :

Adaptive Server Enterprise Sybase

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 28
    Points : 18
    Points
    18
    Par défaut [ASE 12.5.4] problème de procédure
    bonjour,

    Mon problème est le suivant :

    j'ai une procédure que j'utilise avec ASE 12.5.0 qui fonctionne correctement.
    je la compile sur une version 12.5.4 pas de problème et quand je la lance j'ai l'erreur suivante :

    Transaction count after EXECUTE indicates that a COMMIT or ROLLBACK TRAN is missing. previous count = 1, current count = 0.

    Je précise que cette procédure n'a pas ce probleme en ASE 12.5.0, elle fonctionne tres bien dans le meme cas de figure que lorsque je la lance sous ASE 12.5.4 .

    Merci.
    Cordialement.

  2. #2
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 220
    Points : 19 549
    Points
    19 549
    Billets dans le blog
    25
    Par défaut
    peut-être un check supplémentaire afin d'éviter les transactions ouvertes.

    On peut voir le code de la SP ainsi que l'erreur complète (y.c. no) ?
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    je n'ai pas de transaction ouverte sinon j'ai directement un message d'erreur me disant qu'il n'est pas possible d'exécuter la procédure avec une transaction d'ouverte.

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    If Exists(Select name
               From sysobjects
               Where name='U_Niveau3NDL'
               And type='P')
      Drop Procedure U_Niveau3NDL
    go
     
    Create Proc U_Niveau3NDL
    As
      Begin
     
    DECLARE ...
     
    ...
     
     
    GTRAN:
    IF @TranOuverte = 0
        IF @erreur = 0
            COMMIT TRAN
        ELSE
            ROLLBACK TRAN
     
    IF (@@nestlevel = 1 AND @erreur != 0)
        SELECT @Msg = "SQLERR (procédure U_Niveau3NDL)"
    ELSE
        SELECT @Msg = "SQLOK"
     
    -- Affichage du message indiquant si la procédure s'est bien déroulée
    PRINT @Msg
     
    RETURN @erreur
    END
     
    GO 
     
    IF (@@error=0) PRINT "[RB1003] Creation of the procedure 'U_Niveau3NDL' SUCCEEDED."
    ELSE           PRINT "[RB1003] Creation of the procedure 'U_Niveau3NDL' FAILED!"
    GO

    voila les seul endroit où sa traite de transaction (je met pas le reste la procédure fait plus de 1200 lignes).

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    En fait le code que tu as posté ne traite pas de transaction.

    Est-ce qu'il y a un BEGIN TRAN quelque part dans la proc ?
    Si oui, est-ce que les COMMIT et/ou ROLLBACK sont bien là?

    Est-ce que le message arrive lorsque tu charges la proc, ou quand tu l'exécutes?

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    bon j'ai réussi à trouver le problème , en fait cela venait d'une proc que j'appellait à meme la proc est qui ne gérait pas les transaction ( pas de gestion d'erreur).

    Merci michael pour ton aide

Discussions similaires

  1. [ASE 12.5.4] problème de procédure
    Par kei-kun dans le forum Sybase
    Réponses: 4
    Dernier message: 22/01/2007, 15h00
  2. Réponses: 2
    Dernier message: 03/03/2006, 14h41
  3. [ASE][12.5.2]Problème de performance
    Par dngaya dans le forum Sybase
    Réponses: 1
    Dernier message: 16/12/2005, 12h48
  4. Problème de procédure objet : Migration de TForm vers TFrame
    Par rvzip64 dans le forum Composants VCL
    Réponses: 3
    Dernier message: 13/06/2005, 14h44
  5. Problème de procédure stockée
    Par Sorcier157 dans le forum Langage SQL
    Réponses: 9
    Dernier message: 17/03/2005, 18h57

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