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 :
Et dans ma sp, j'ai :
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);
Il lance bien le chargement, mais rien ne se passe, et php m'affiche ensuite :
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
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 ... )
Partager