Précédent   Forum des professionnels en informatique > Bases de données > Sybase > Adaptive Server Enterprise
Adaptive Server Enterprise Forum d'entraide concernant Sybase Adaptive Server Enterprise, le dataserver phare de Sybase
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/11/2007, 16h28   #1
Membre émérite
 
Homme Serge RUQUET
Consultant informatique
Inscription : août 2006
Messages : 669
Détails du profil
Informations personnelles :
Nom : Homme Serge RUQUET
Âge : 50
Localisation : France

Informations professionnelles :
Activité : Consultant informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2006
Messages : 669
Points : 840
Points : 840
Par défaut [TSQL]Astuce ou n'importe quoi

bonjour a tous,

je viens de tomber sur ce code:
Citation:
UPDATE MAtable
SET
CodeRet = @CodeRet ,
DateRet = @DateRet
FROM
AutreTable
WHERE
NoOpe = @NoOpe

SELECT "2"

/* Sybase errors */
SELECT @SybError = @@ERROR
IF @SybError != 0
BEGIN
SELECT @NomMsg1 = convert(varchar(10),@SybError)
PRINT @NomMsg1
GOTO fin
END

A quoi sert le select "2" ?
Je vois 2 solutions

1° - copier/coller mal venu
2° - est-il possible que le Select "2" réinitialise le @@ERROR a 0, ce qui fait que, comme le select "2" n'est pas envoyé au moteur, le test SELECT @SybError = @@ERROR est considéré comme la 1° instruction DML après le Update et donc si le update se passe mal pas d'exception levée, et @SybError toujours =0 ?

Qu'en pensez-vous
__________________
Errare humanum est, perseverare diabolicum (Sénèque)
serge0934 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2007, 16h45   #2
Rédacteur/Modérateur
 
Inscription : janvier 2006
Messages : 1 301
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : janvier 2006
Messages : 1 301
Points : 1 505
Points : 1 505
Envoyer un message via AIM à mpeppler
Le 'select "2"' va effectivement réinitialiser @@error - donc la requête sur @@error qui suit va toujours renvoyer 0.

Maintenant - est-ce une erreur ou est-ce voulu... impossible à dire sans voire le code client qui interagit avec ce bloc de code pour voir si un retour de "2" est lu et interprété d'une façon ou d'une autre.

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
mpeppler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2007, 08h19   #3
Membre émérite
 
Homme Serge RUQUET
Consultant informatique
Inscription : août 2006
Messages : 669
Détails du profil
Informations personnelles :
Nom : Homme Serge RUQUET
Âge : 50
Localisation : France

Informations professionnelles :
Activité : Consultant informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2006
Messages : 669
Points : 840
Points : 840
merci de ta confirmation Mickael.

le code qui suit est juste un
Citation:
commit
return
fin:
rollback
donc, le commit se fera même si le update explose ?
__________________
Errare humanum est, perseverare diabolicum (Sénèque)
serge0934 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2007, 08h27   #4
Rédacteur/Modérateur
 
Inscription : janvier 2006
Messages : 1 301
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : janvier 2006
Messages : 1 301
Points : 1 505
Points : 1 505
Envoyer un message via AIM à mpeppler
Effectivement, le GOTO FIN ne sera jamais exécuté.

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
mpeppler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2007, 08h26   #5
Rédacteur/Modérateur
 
Avatar de fadace
 
Homme Fabien Celaia
Administrateur de base de données
Inscription : octobre 2002
Messages : 3 779
Détails du profil
Informations personnelles :
Nom : Homme Fabien Celaia
Âge : 41
Localisation : Suisse

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

Informations forums :
Inscription : octobre 2002
Messages : 3 779
Points : 8 124
Points : 8 124
Envoyer un message via ICQ à fadace Envoyer un message via Skype™ à fadace
C'est une "méthode" de debuggage permettant de skipper un test d'erreur et, du même coup, d'afficher où on en est...

... mais en fin de recherche, généralement, on supprime ce type de ligne

Personnellement, je suis pas trop pour ce type de méthode à l'arrache...
__________________
Sr DBA Oracle / Sybase / MS-SQL / DB2 / Informix / Postgresql
Administrateur SAP
Mes articles

Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !
fadace est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h39.


 
 
 
 
Partenaires

Hébergement Web