Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & SQL-Server
PHP & SQL-Server Forum d'entraide sur SQL-Server avec PHP. Avant de poster -> FAQ SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/01/2008, 09h46   #1
Membre à l'essai
 
Inscription : novembre 2006
Messages : 23
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 23
Points : 24
Points : 24
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 :
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 :
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 ... )
Fallen_Leaf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2008, 19h25   #2
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 983
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 983
Points : 3 568
Points : 3 568
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 !...
berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2008, 08h57   #3
Membre à l'essai
 
Inscription : novembre 2006
Messages : 23
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 23
Points : 24
Points : 24
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 ...
Fallen_Leaf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2008, 09h49   #4
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 983
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 983
Points : 3 568
Points : 3 568
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 !...
berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h18.


 
 
 
 
Partenaires

Hébergement Web