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 07/07/2008, 16h33   #1
Invité régulier
 
Inscription : juin 2007
Messages : 19
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 19
Points : 7
Points : 7
Par défaut Scope de la valeur de DECLARE

Bonjour,

J'utilise le client isql pour exécuter des scripts sql sur mon serveur ASE 12.5
Je lance plusieurs exécutions a partir d'un scripts shell en redirigeant mes fichiers sql dans un pipe vers le programme isql

En résumé:
Code :
1
2
3
4
5
6
7
8
 
$>cat toto.sql
USE db_name
GO
 
SELECT * FROM base_name
GO
$>cat toto.sql | isql -Umyuser -Pmypasswd -Smyserver
La dernière instruction me permet d'exécuter le contenu du fichier toto.sql dans ma base de données.

Maintenant pour des raisons compliqués, j'ai besoin de récupérer la valeur de retour de chaque exécutions.
En résumé je veux faire quelque chose du genre ...
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
$>cat toto.sql
USE db_name
GO
 
DECLARE @STATUS int
SET @STATUS = 0
SELECT * FROM base_name
SET @STATUS += (SELECT @@error)
GO
 
UPDATE table_bidule
SET champ1 = toto
FROM table_truc
SET @STATUS += (SELECT @@error)
GO
$>cat toto.sql | isql -Umyuser -Pmypasswd -Smyserver
Le but étant de vérifier à la fin si la variable @status est toujours égale a 0 ou non.

Malheureusement ce que j'essaye de faire ne marche pas, car entre chaque instruction GO, la variable @status n'existe plus.

Une des solutions pourrait être supprimer les GO ... mais je suis obligé de les garder car sinon j'ai des problèmes au niveau du temps d'execution de mes requetes.

Ma question:
Es ce qu'il est possible de mettre à jour une variable (autre qu'une table) pour conserver les status d'exécutions des différentes commandes que j'exécute sans supprimer mes GO ??
kalder est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2008, 08h49   #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
Une variable n'est visible que dans le bloc de code courant (cad dans la proc stockée où elle est déclarée, ou dans l'intervalle entre le declare et le "go" qui suit pour un script isql).

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 08/07/2008, 11h09   #3
Invité régulier
 
Inscription : juin 2007
Messages : 19
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 19
Points : 7
Points : 7
Donc si j'ai bien compris je ne peux passer que par la création d'une table et la mise à jour d'un champ pour pouvoir faire la même chose ...
kalder est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2008, 11h59   #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.

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 08/07/2008, 12h09   #5
Invité régulier
 
Inscription : juin 2007
Messages : 19
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 19
Points : 7
Points : 7
Merci encore une fois pour la réponse
kalder 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 04h03.


 
 
 
 
Partenaires

Hébergement Web