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

Développement SQL Server Discussion :

Utilisation de XP_SPRINTF avec une fonction


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de strat0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2003
    Messages : 288
    Par défaut Utilisation de XP_SPRINTF avec une fonction
    Bonjour,

    Histoire de ne pas mourir idiot, est-ce que quelqu'un saurait m'expliquer pourquoi ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    DECLARE @parameters VARCHAR(100);
    EXEC XP_SPRINTF @parameters OUTPUT, 
        '/DatabaseName=%s',
        db_name()
     
    PRINT @parameters
    Me retourne le message :
    Incorrect syntax near ')'.
    ...au niveau de db_name(). C'est interdit d'appeler une fonction en paramètre d'une proc? Il faut forcément que je créé une variable?

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2003
    Messages : 733
    Billets dans le blog
    8
    Par défaut
    Sous SQL Server, tu ne peux faire appel à une fonction, pour passer un paramètre, même si le type de la fonction est compatible avec le type de du paramètre. Le prototype de la procédure attend une valeur et rien d'autre.
    C'est vrai que la question mérite d'être posée et que cela ressemble à une limitation ou une petite faiblesse du compilateur T-SQL (?). mais ce n'est pas bloquant.
    Le code ci-dessous marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    DECLARE @parameters VARCHAR(100);
    DECLARE @database_name sysname 
    SET @database_name = db_name();   
     
    EXEC dbO.XP_SPRINTF @parameters OUTPUT, '/DatabaseName=%s', @database_name; 
    PRINT @parameters;
    A+

  3. #3
    Membre éclairé
    Avatar de strat0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2003
    Messages : 288
    Par défaut
    Merci. C'est ce que je commençais sérieusement à soupçonner.

    En fait j'ai une bonne quinzaine de paramètres, et ça rendait la chaîne de caractères concaténée assez peu lisible. Mais là du coup ça rend la fonction XP_SPRINTF peu utile à mon avis.

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

Discussions similaires

  1. Utilisation de publish avec une fonction
    Par neoticker dans le forum MATLAB
    Réponses: 5
    Dernier message: 10/05/2011, 11h37
  2. utilisation de apply avec une fonction callback
    Par r-zo dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 05/08/2010, 10h16
  3. Réponses: 3
    Dernier message: 07/05/2008, 13h30
  4. Problème avec une fonction en utilisant Zsh
    Par Olivier Regnier dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 18/06/2007, 08h19
  5. Problème avec une Fonction utilisant WMI
    Par Eric_78180 dans le forum VBScript
    Réponses: 3
    Dernier message: 29/12/2006, 14h00

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