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

PHP & Base de données Discussion :

Lancement via PHP d'une procédure stockée utilisant un DTS


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 22
    Points : 33
    Points
    33
    Par défaut Lancement via PHP d'une procédure stockée utilisant un DTS
    Bonjour,

    Dans le cadre d'une appli' PHP, j'avais l'intention de développer pour un utilisateur censé administrer la mise à jour des données une page lui permettant de charger des tables de références avec des fichiers CSV.
    J'ai donc un formulaire qui lui permet de charger les fichiers, puis dans le traitement du formulaire, je désirais lancer une procédure stockée (qui fonctionne si je la lance via EM) appelant elle-même un DTS (le DTS étant là pour charger automatiquement le fichier dans une table). Hélas, lorsque j'exécute ce formulaire ... rien ne se passe.

    Dans PHP j'ai ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $statement = mssql_init("nom_sp",$ObjCnx);
    /*Déplacement du fichier chargé au bon endroit pour que le DTS le trouve : j'ai testé ça fonctionne*/
    $result = mssql_execute ($statement)
    /*Affichage des résultats*/
     while ($row = mssql_fetch_assoc($result))
        print_r($row);
    Et dans ma sp, j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    CREATE PROCEDURE nom_sp
    AS
     
    BEGIN
      DECLARE @cmd AS varchar(255)
     
      TRUNCATE TABLE table_temp
     
      SET @cmd = 'DTSRUN /S "(local)" /U "sa" /E /N "NOM_DTS" /W "0" '
      SELECT @cmd
     
      EXEC master..xp_cmdshell @cmd
     
      EXEC sp_retraitement_donnees
     
    END
    GO
    Il lance bien le chargement, mais rien ne se passe, et php m'affiche ensuite :

    Array ( [computed] => DTSRUN /S "(local)" /U "sa" /E /N "NOM_DTS" /W "0" )

    Pour info, sur d'autres pages j'arrive bien à exécuter des sp (qui lancent simplement des requêtes) avec les mêmes commandes ... C'est pour celà que je me demandais si, tout simplement, il n'est pas possible de lancer des DTS via PHP ...

    Merci d'avance,

    (Le serveur est sous SQL 2000 et je suis en PHP 5 ... )

  2. #2
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 488
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 488
    Points : 6 037
    Points
    6 037
    Par défaut
    Je comprend pas, parce que la procédure devrait exécuter le DTS de manière autonome à PHP. Ne serait-ce pas un problème de droit ? Depuis la connexion PHP a t'il le droit d'executer le DTS ?
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

  3. #3
    Nouveau membre du Club
    Inscrit en
    Novembre 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 22
    Points : 33
    Points
    33
    Par défaut
    A priori oui, j'utilise une connexion ayant les droits nécessaires.
    Ceci étant, j'ai entre-temps changé mon fusil d'épaules, et effectué le chargement des tables directement via PHP, et géré le retraitement de données via la procédure stockée "nettoyée" de son appel au DTS ... Si j'ai 5 mns un jour , j'essaierais de replancher sur le sujet ...

  4. #4
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 488
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 488
    Points : 6 037
    Points
    6 037
    Par défaut
    Citation Envoyé par Fallen_Leaf Voir le message
    A priori oui, j'utilise une connexion ayant les droits nécessaires.
    Ceci étant, j'ai entre-temps changé mon fusil d'épaules, et effectué le chargement des tables directement via PHP, et géré le retraitement de données via la procédure stockée "nettoyée" de son appel au DTS ... Si j'ai 5 mns un jour , j'essaierais de replancher sur le sujet ...
    ça m'intéresserais si tu trouves la solution
    Bon courage.
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/10/2014, 19h40
  2. Réponses: 2
    Dernier message: 28/07/2014, 09h04
  3. [PDO] [PHP 5.3][ZEND][PDO] Exécution d'une procédure stockée via PDO et Zend
    Par daav14 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 11/10/2010, 20h56
  4. Réponses: 3
    Dernier message: 17/11/2008, 12h23
  5. Lancement DTSRun via une procédure stockée
    Par dut-dut dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 12/12/2007, 16h57

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