Précédent   Forum des professionnels en informatique > Bases de données > Sybase
Sybase Forum sur la base de données Sybase. Avant de poster -> F.A.Q Sybase, Tutoriels 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 08/12/2004, 15h24   #1
Membre actif
 
Avatar de MashiMaro
 
Inscription : février 2003
Messages : 180
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 180
Points : 158
Points : 158
Par défaut [Sybase] paramètre facultatif pour procédure stockée

Bonjour,

Je cherche la manière de créer un paramètre facultatif pour qu'il soit reconnu en tant que tel dans les table système (pour identification dans mon interface).

Pour l'instant le fait ainsi :
Code :
CREATE procedure MaProc @val int =NULL AS...
Ceci met une valeur par défaut mais le paramètre n'est pas reconnu comme facultatif.

Merci d'avance
__________________
MashiMaro

L'homme sage apprend de ses erreurs, l'homme très sage apprend des erreurs des autres.
MashiMaro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2004, 11h34   #2
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 pourtant la seule solution : spécifier les paramètre facultatifs en finale de déclaration en spécifiant la valeur par défaut après le "=" OU les spécifier dans n'importe quel ordre, mais il faut alors spécifier le @PARAM=monParam pour chaque paramètre à l'appel de la procédure : c'est le plus fastidieux mais le plus sûr
fadace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2004, 11h39   #3
Membre actif
 
Avatar de MashiMaro
 
Inscription : février 2003
Messages : 180
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 180
Points : 158
Points : 158
Et est-il possible de détecter ce genre de choses dans les tables système ?
__________________
MashiMaro

L'homme sage apprend de ses erreurs, l'homme très sage apprend des erreurs des autres.
MashiMaro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2004, 11h49   #4
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
Les deux tables système impactées sont syscomments (pour le texte en "clair") et sysprocedures (pour la version compilée). Si ce n'est en parsant syscomment.description , je ne vois pas
fadace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2004, 13h31   #5
Membre actif
 
Avatar de MashiMaro
 
Inscription : février 2003
Messages : 180
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 180
Points : 158
Points : 158
syscolumns aussi est impactée mais j'ai testé en créant un paramètre int sans valeur par défaut et un autre paramètre int avec 999999 en valeur par défaut.

Même dans la table syscolumns, je ne trouve aucune différence entre les deux...
__________________
MashiMaro

L'homme sage apprend de ses erreurs, l'homme très sage apprend des erreurs des autres.
MashiMaro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2004, 09h06   #6
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
Ah bon ?!

Code :
1
2
3
CREATE proc p @i int, @j int = 9
AS
SELECT @i, @j

Le code suivant me retourne pourtant bien le code de création, comprenant la valeur par dlfaut !
Code :
1
2
3
4
5
SELECT text FROM syscomments WHERE id= object_id('P')
 
text
-------------------------------------------------------
CREATE proc p @i int, @j int = 9  AS  SELECT @i, @j
fadace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2004, 15h14   #7
Membre actif
 
Avatar de MashiMaro
 
Inscription : février 2003
Messages : 180
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 180
Points : 158
Points : 158
J'avais compris ceci mais je ne souhaite pas questionner la table syscomments car me lancer dans de l'analyse de texte serait trop prises de tête.

Il existe des tables contenant les infos des paramètres mais je ne vois pas de différence entre les deux et pourtant il y en a une non négligeable.
__________________
MashiMaro

L'homme sage apprend de ses erreurs, l'homme très sage apprend des erreurs des autres.
MashiMaro est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h13.


 
 
 
 
Partenaires

Hébergement Web