Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes SQL
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 26/01/2012, 18h23   #1
Invité de passage
 
Bernard Lévan Lé
Inscription : avril 2010
Messages : 7
Détails du profil
Informations personnelles :
Nom : Bernard Lévan Lé
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2010
Messages : 7
Points : 4
Points : 4
Par défaut Lancement d'un exécutable depuis SQL

Est il possible de lancer un exécutable externe directement depuis SQL ... et si oui, comment ?

Le problème :
Nous utilisons des workflows pilotés par un progiciel et la seule possibilité qui nous soit donnée en terme d'intervention extérieure réside dans la possibilité d'appeler des procédures stockées SQL. Pour l'instant nous contournons l'obstacle via une table SQL scrutée régulièrement par le programme externe qui exécute effectivement le traitement selon les paramètres qui y sont stockés mais c'est évidemment très lourd et cela brise la continuité de traitement (avec tout ce que cela implique).
Spontex93 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 19h42   #2
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 791
Points : 17 791
Vous pouvez utiliser la procédure stockée xp_cmdshell qui permet de lancer une commande OS.

Mais depuis la version 2005 de SQL, cette proc est désactivée par précaution.

Pour la réactiver :

Code :
1
2
3
4
5
6
7
8
EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
EXEC sp_configure 'xp_cmdshell', 1;
GO
RECONFIGURE;
GO
Mais le mieux serait de faire des procédures stockées SQL CLR en .net.

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 19h53   #3
Invité de passage
 
Bernard Lévan Lé
Inscription : avril 2010
Messages : 7
Détails du profil
Informations personnelles :
Nom : Bernard Lévan Lé
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2010
Messages : 7
Points : 4
Points : 4
Je vous remercie beaucoup pour cette information.

L'utilisation d'une telle procédure ne peut elle pas s'avérer problématique voire périlleuse ? Je pense à des problèmes de charge machine, de cohérence de données (partagées), de traitements (asynchronisme total / univers différents). En fait, je ne vois pas trop comment organiser un flux cohérent de traitements scindés en SQL d'un côté et programme externe de l'autre. Ce dernier étant considéré comme une sorte de sous programme vu de SQL, je ne connais de moyen de re-synchroniser SQL sur la fin d'exécution du 'sous programme'.

Je vais tester cette procédure si j'arrive à la réactiver ..

Merci encore ..
Spontex93 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 20h42.


 
 
 
 
Partenaires

Hébergement Web