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

MS SQL Server Discussion :

Utilisation de [] avec Exec [2012]


Sujet :

MS SQL Server

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 176
    Points : 91
    Points
    91
    Par défaut Utilisation de [] avec Exec
    Bonne rencontre,

    Je me permets de venir vers vous car je suis un peu bloqué.

    J’ai créé un lien entre plusieurs serveurs MS-SQL. J’ai une procédure stockée qui exécute un chaine de caractère avec un Exec (@SQL) . Cette PS attend deux paramètres qui sont le nom de la base de données à attaquer et le nom du serveur.


    Les noms des serveurs est par exemple Server1 et Server-societe\instance

    Je suis obligé de mettre entre crochet le deuxième nom du server sinon il dit que le – n’est pas une commande correcte. En gros, je suis obligé de faire ça comme valeur du paramètre [Server-societe\instance]

    Si j’exécute ma PS depuis la console de MS-SQL, je n’ai aucun souci.

    Si par contre, je l’exécute depuis un script php, je reçois ce message :

    Warning: mssql_execute() [function.mssql-execute]: message: The identifier that starts with '[AVITOUR01].SsDataFA.dbo.T_DOS_References as ss_Ref INNER JOIN [[AVITOUR01].SsDataFA.dbo.T_DOS_Financiers as ss_Fin ON ss_' is too long. Maximum length is 128. (severity 15) in /home/www/d71613eafa4db42067418bee87f247d9/web/crm/components/com_synchromssql/helpers/CRM.php on line 1374
    Ce message est provoqué par l’utilisation des [] qui semble fonctionner comme des ". J’ai essayé d’utiliser QUOTED_IDENTIFIER mais la doc me dit que cette instruction ne tient pas compte des []

    « L'utilisation de crochets, [ et ], pour délimiter des identificateurs n'est pas affectée par le paramètre QUOTED_IDENTIFIER. »

    Je tourne en rond et je ne sais pas trop quoi faire.

    Amicalement,
    Raphaël.

  2. #2
    Expert éminent
    Avatar de Lyche
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2007
    Messages
    2 523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 523
    Points : 6 775
    Points
    6 775
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    Sous SQL Server, la fonction QUOTENAME( 'valeur' ) rajoute des [] en bornes du texte.

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT QUOTENAME( 'test' );

    aura pour résultat :
    [test]
    Pourrais-tu, par précaution, poster ton code php que l'on ai une meilleur vision de ce que tu as fait comme code.

    Edit :
    De plus, je ne sais pas si tu as remarqué, mais... tu as une petite indication de ton erreur.
    [AVITOUR01].SsDataFA.dbo.T_DOS_References as ss_Ref INNER JOIN [[AVITOUR01].SsDataFA.dbo.T_DOS_Financiers as ss_Fin ON ss_' is too long. Maximum length is 128
    Ta requête parait trop longue puisque php la coupe au niveau du ss_

    Enfin, regarde le nom de ta base après le INNER JOIN, il comporte deux [[

    Cordialement,
    Lyche
    Rejoignez la communauté du chat et partagez vos connaissances ou vos questions avec nous

    Mon Tutoriel pour apprendre les Agregations
    Consultez mon Blog SQL destiné aux débutants

    Pensez à FAQ SQL Server Ainsi qu'aux Cours et Tuto SQL Server

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 176
    Points : 91
    Points
    91
    Par défaut
    Bonne rencontre,

    Merci pour ton retour.

    Après avestigation, j'ai remarqué que c'était quand exécuté la PS depuis php qu'il n'aimait pas [].

    Par contre, j'avais besoin des [] quand je lançais du manager de MS-SQL. Par chance, les PS utilisée par le site dans ce cas et les PS utilisées par SQL agent sont différentes.

    J'ai pu donc combiner la donné avec les deux grâce à QUOTENAME dans un cas.

    Merci donc pour ton aide.

    Amicalement,
    Raphaël.

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

Discussions similaires

  1. Erreur avec l'utilisation de getRuntime.exec(requetePing)
    Par tupac25 dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 10/11/2010, 13h11
  2. [Système] Utiliser system() ou exec() avec sudo
    Par xxkirastarothxx dans le forum Langage
    Réponses: 8
    Dernier message: 19/11/2008, 10h17
  3. [Kylix 3] Je n'arrive pas à utiliser MySQL
    Par usebob dans le forum EDI
    Réponses: 4
    Dernier message: 15/04/2005, 10h18
  4. PB de vue utilisant UNION avec ENTERPRISE MANAGER
    Par punglas dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 22/12/2004, 15h18
  5. Réponses: 12
    Dernier message: 02/02/2004, 13h41

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