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 :

Plantage sur lancement cde bcp


Sujet :

MS SQL Server

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 229
    Points : 137
    Points
    137
    Par défaut Plantage sur lancement cde bcp
    Bonjour,

    Je souhaite utiliser l'utilitaire bcp de SqlServer afin de déposer des fichiers sur disque.
    J'ai donc créé une procedure stockée dans laquelle je construis ma chaine bcp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SET @BCPCommand = 'bcp "' + @MonSQL +'" queryout d:\Reporting\Unload\' + @NomFichier + ' -T -C -t;' 
    EXECUTE master..xp_cmdshell @BCPCommand
    J'ai malheureusement ce message d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SQLState = 08001, NativeError = 17
    Error = [Microsoft][ODBC SQL Server Driver][Shared Memory]Ce serveur SQL n'existe pas ou son accès est refusé.
    SQLState = 01000, NativeError = 2
    Warning = [Microsoft][ODBC SQL Server Driver][Shared Memory]ConnectionOpen (Connect()).
    J'ai testé en mettant le path de bcp.exe dans ma chaine.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SET @BCPCommand = '"C:\Program Files\Microsoft Sql Server\80\Tools\Binn\bcp.exe" "' + @MonSQL +'" queryout d:\Reporting\Unload\' + @NomFichier + ' -T -C -t;' 
    EXECUTE master..xp_cmdshell @BCPCommand
    Ce coup-ci j'ai le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    'C:\Program' n'est pas reconnu en tant que commande interne
    Pour info le path du serveur fait bien référence au répertoire "C:\Program Files\Microsoft Sql Server\80\Tools\Binn"

    Je peux executer sans erreur via une commande dos la chaine suivante
    :
    "C:\Program Files\Microsoft Sql Server\80\Tools\Binn\bcp.exe"

    J'avoue que je commence à m'énerver sur le sujet.

    Merci d'avance pour votre aide.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 356
    Points : 406
    Points
    406
    Par défaut
    Bonjour,

    Pour te répondre vite, pour lancer ce type de commande, il te faut exécuter ta procédure stockée avec une authentification windows qui possède les droits sur le disque sur lequel tu souhaites écrire.

    En plus, je crois que tu as des problèmes de défintion de ta requête dynamique.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SET @BCPCommand = 'bcp "' + @MonSQL +'" queryout d:\Reporting\Unload\' + @NomFichier + '' -T -C -t;' 
    EXECUTE master..xp_cmdshell @BCPCommand
    Dans un second temps, il est préférable d'utiliser des chemins UNC à la place de disques réseaux.

    Pour finir, je te mets en garde sur l'utilisation de la procédure stockée système xp_cmd_shell car elle ouvre des failles dans le système d'information. Il est souvent recommandé de la désactiver.

    Je te conseils donc d'utiliser des lots DTS qui sont très adaptés à la réalisation de ton besoin. Si tu souhaites travailler sur la version 2005 de SQL Server, tu peux aussi utiliser le service SSIS.

    Bonne journée.

Discussions similaires

  1. [MFC] Plantage sur LoadFrame
    Par thieum74 dans le forum MFC
    Réponses: 11
    Dernier message: 06/09/2007, 13h15
  2. [DB2]Plantage sur COMMIT
    Par Dundee dans le forum DB2
    Réponses: 1
    Dernier message: 24/11/2004, 11h05
  3. [JSP] erreur sur lancement d'exe
    Par RENAULT dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 13/07/2004, 17h01
  4. [LG]plantage sur une commande basique !
    Par Jeff on the web dans le forum Langage
    Réponses: 5
    Dernier message: 13/01/2004, 19h07
  5. Réponses: 7
    Dernier message: 20/08/2003, 10h33

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