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 :

Chaine de caractère, contenant des variables, à éxecuter


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 4
    Par défaut Chaine de caractère, contenant des variables, à éxecuter
    Bonjour,

    Je veux exécuter une requête à partir d'une chaîne de caractère, et cette requête contient des variables de type uniqueidentifier, et cela pose problème à SQL Server car j'insère un uniqueidentifier dans un varchar.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    DECLARE @IdClient uniqueidentifier;
    SET @IdClient = '47656dda-b39a-4398-909d-4f4f895d3a24';
     
    DECLARE @req varchar(500);
    SET @req =('SELECT libelle
    	    FROM MAC_DAT_Client
    	    WHERE idClient = ''' + @IdClient + '''');
    EXEC @req;
    J'ai donc essayé le code suivant en faisant la conversion de uniqueidentifier vers varchar, mais toujours rien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    DECLARE @IdClient uniqueidentifier;
    SET @IdClient = '47656dda-b39a-4398-909d-4f4f895d3a24';
     
    DECLARE @req varchar(500);
    SET @req =('SELECT libelle
    	    FROM MAC_DAT_Client
    	    WHERE idClient = ''' + CONVERT(varchar(50), @IdClient) + '''');
    EXEC @req;
    Si vous avez une petite idée je suis tout ouïe
    Merci

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonjour,

    Quel est le type de la colonne id_client ?
    Quel est le libellé exact de l'erreur ?

    @++

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 4
    Par défaut
    Merci de te pencher sur le problème

    La colonne idClient et de type uniqueidentifier

    Pour les erreurs :

    Dans le 1er cas erreur sous SQL Server :

    Msg*402, Niveau*16, État*1, Procédure*MAC_DAT_GetEnfants, Ligne*17
    Les types de données varchar et uniqueidentifier sont incompatibles dans l'opérateur add.
    Dans le 2ème cas (avec le convert) erreur après l'exécution :

    Procédure stockée 'SELECT libelle
    FROM MAC_DAT_Client
    WHERE idClient = '47656DDA-B39A-4398-909D-4F4F895D3A24'' introuvable
    .


  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    DECLARE @IdClient uniqueidentifier;
    SET @IdClient = '47656dda-b39a-4398-909d-4f4f895d3a24';
     
    DECLARE @req varchar(500);
    SET @req =('SELECT libelle
    	    FROM MAC_DAT_Client
    	    WHERE idClient = CONVERT(uniqueidentifier, ''' + @IdClient + ''')');
    EXEC @req;

  5. #5
    Membre éclairé
    Homme Profil pro
    SQL Server
    Inscrit en
    Juin 2010
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : SQL Server
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2010
    Messages : 43
    Par défaut
    Il faut que tu mettes à la fin
    sinon il considère qu'il doit trouver une proc stock a exécuter alors que la tu veux exécuter une requête dynamique.

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/08/2012, 16h20
  2. Chaine de caractères contenant des antislash
    Par Mides dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 27/04/2012, 09h32
  3. Réponses: 4
    Dernier message: 24/10/2011, 12h17
  4. Comparer 2 chaines de caractère contenant des float
    Par Korben-Dallas dans le forum C
    Réponses: 14
    Dernier message: 17/05/2011, 13h26
  5. Réponses: 1
    Dernier message: 10/01/2008, 10h10

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