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 18/12/2007, 17h57   #1
Membre du Club
 
Inscription : mars 2002
Messages : 52
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : mars 2002
Messages : 52
Points : 43
Points : 43
Par défaut [ASE] Modification variable du script shell dans une connexion isql

Bonjour,

Voila je voudrais modifier une variable de type shell dans une connexion isql.

Est ce que tout d'abord ceci est possible? car je réussis a utiliser une variable de type shell dans la connexion isql.

un petit exemple pour que tout le monde comprenne.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
INDI_T=0 #Ma varibale shell que je souhaite modifier
LOT=1 #Variable shell
 
isql -U$USERID -P$PASSWORD -S$SERVER << EOF
USE $BASENAME
go
SELECT 'CONNEXION ISQL'
go
IF (EXISTS(SELECT 1 FROM matable WHERE nume= "$LOT"))
begin
SELECT 'CONNEXION ISQL pour le lot'
     IF (EXISTS(SELECT 1 FROM matable WHERE nume = "$LOT" AND code ='G' AND code_s = 'R' AND type= 'T'))
          INDI_T=0 -- Je ne sais comment affecter la nouvelle valeur a cette variable du shell
     ELSE 
          INDI_T=1-- Je ne sais comment affecter la nouvelle valeur a cette variable du shell
 
end
else 
INDI_T=0-- Je ne sais comment affecter la nouvelle valeur a cette variable du shell
go
exit
go
EOF
Merci pour vos réponses.
Malau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2007, 21h01   #2
Membre Expert
 
Inscription : juin 2007
Messages : 1 056
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 1 056
Points : 1 078
Points : 1 078
Tu dois récupérer la valeur de INDI_T en sortie de l'iSQL. Il suffit de rediriger la sortie ISQL dans un fichier et de récupérer le contenu du fichier dans la variable.
Par contre, il faut s'assurer que la variable @INDI_T sera bien formatée, sans caractères parasites. Pour nettoyer, tu peux utiliser awk par exemple, dans le cat.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
INDI_T=0 #Ma varibale shell que je souhaite modifier
LOT=1 #Variable shell
FICHIER=chemin_fichier
 
isql -b -U$USERID -P$PASSWORD -S$SERVER << EOF > $FICHIER
SET nocount ON
go
USE $BASENAME
go
IF (EXISTS(SELECT 1 FROM matable WHERE nume= "$LOT"))
begin
     IF (EXISTS(SELECT 1 FROM matable WHERE nume = "$LOT" AND code ='G' AND code_s = 'R' AND type= 'T'))
          SELECT @INDI_T=0 -- Je ne sais comment affecter la nouvelle valeur a cette variable du shell
     ELSE 
          SELECT @INDI_T=1-- Je ne sais comment affecter la nouvelle valeur a cette variable du shell
 
end
else 
SELECT @INDI_T=0-- Je ne sais comment affecter la nouvelle valeur a cette variable du shell
SELECT @INDI_T
go
 
EOF
INDI_T=`cat $FICHIER`
__________________
Emmanuel T.
kagemaru est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 09h19   #3
Membre du Club
 
Inscription : mars 2002
Messages : 52
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : mars 2002
Messages : 52
Points : 43
Points : 43
Merci, même si je voulais eviter de passer par cette solution mais apres mes divers essai je pense que je vais bien être obligé de faire comme cela.
Malau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 11h07   #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
En shell il n'y a pas le choix.

Par contre, si tu code en perl par exemple on peut beaucoup plus facilement interagir sans avoir à faire de fork()/exec() etc.

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
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h37.


 
 
 
 
Partenaires

Hébergement Web