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

Sybase Discussion :

Utiliser à la fois @@rowcount et @@error


Sujet :

Sybase

  1. #1
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 488
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 488
    Points : 6 037
    Points
    6 037
    Par défaut Utiliser à la fois @@rowcount et @@error
    [Sybase]
    Bonjour,

    J'ai un problème pour utiliser deux variables d'environnement en même temps car j'ai l'impression qu'elles se télescope entre elles.
    Je voudrais à la fois connaitre le nombre de ligne impactée et s'il y a eu une erreur.
    Le souci c'est que je ne peux pas faire ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ...
    UPDATE maTable SET ...
    set @mavariable = @@ROWCOUNT
    if @@ERROR !=0
    BEGIN
    ...
    END
    car @error va écouter l'affectation de la variable et non la requête plus haut.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    ...
    UPDATE maTable SET ...
     
    if @@ERROR !=0
    BEGIN
    ...
    END
    ELSE
    BEGIN
    set @mavariable = @@ROWCOUNT
    END
    Dans ce cas @@rowcount va récupérer l'information sur la condition malgré que je rentre pas dedans.

    Que faire pour récupérer le nombre de ligne affecté et récupérer le code s'il y a erreur ?
    Merci
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Déclarez des variables :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DECLARE @error int, @rowcount int
    et récupérez les variables système dans la même instruction (juste après votre update) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT  @error = @@error
    	,@rowcount =  @@rowcount

  3. #3
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 488
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 488
    Points : 6 037
    Points
    6 037
    Par défaut
    ??!,??!!

    "Mais bon sang ! j'avais pas pensé à ça !"



    Merci !
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

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

Discussions similaires

  1. Utiliser plusieurs fois le même composant
    Par Ren97 dans le forum Composants VCL
    Réponses: 6
    Dernier message: 01/03/2008, 01h49
  2. Utiliser plusieurs fois ma classe en même temps
    Par Princeless74 dans le forum C++
    Réponses: 6
    Dernier message: 05/01/2008, 21h54
  3. Réponses: 4
    Dernier message: 06/04/2007, 13h48
  4. Réponses: 5
    Dernier message: 24/08/2006, 15h00
  5. Réponses: 2
    Dernier message: 22/05/2006, 14h08

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