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 :

Appeler un WebService depuis une procédure stockée


Sujet :

MS SQL Server

  1. #1
    Membre éprouvé Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 822
    Points : 1 108
    Points
    1 108
    Par défaut Appeler un WebService depuis une procédure stockée
    Bonjour à tous

    Dans le cadre d'une application, je dois réaliser une procédure stockée qui effectue de nombreux traitements et presque autant de procédures stockées internes (imbriquées) avec autant de factorisation que possible...

    jusque là, pas de problème (enfin si impossible d'appeler rand() dans une fonction)). Mais en gros tous les traitements sont effectués sauf un :

    ma procédure stockée doit appeler un webservice (en C#) et récupérer ce qu'il retourne. Pour le moment je ne sais pas exactement ce qu'est ce retour, mais j'imagine qu'il s'agit d'un DataSet... celà ne devrait pas poser de problème... Ce qui me chagrine, c'est que je n'ai aucune idée de la façon de procéder pour invoquer un webservice : donc pour appeler une url en TSQL.

    Est-ce que quelqu'un pourrait me mettre sur la voie ?

    merci d'avance.
    En informatique, le problème se situe toujours entre le clavier et l'écran !
    Il y a deux chemins entre le clavier et l'écran : Par l'UC et par l'utilisateur.

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 44
    Points : 55
    Points
    55
    Par défaut Quelle est ta version ?
    Bonsoir,

    Pourrait-on savoir votre version de SQL Server ?

  3. #3
    Membre éprouvé Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 822
    Points : 1 108
    Points
    1 108
    Par défaut
    oui, j'ai oublié de préciser SQL 2000...

    on m'a parlé d'une dll à faire pour que celà soit réalisable.
    Sous sql 2005, .net est implémenté et on peut le faire directement (parait-il)
    En informatique, le problème se situe toujours entre le clavier et l'écran !
    Il y a deux chemins entre le clavier et l'écran : Par l'UC et par l'utilisateur.

  4. #4
    Membre éprouvé Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 822
    Points : 1 108
    Points
    1 108
    Par défaut
    pour ceux qui seraient confronté au même problème un jour voici la solution que j'ai fini par trouver :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    USE [ma_db]
    GO
     
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER PROCEDURE [dbo].[CreateGroup_onOBL] 
    	@compId_grp INT,
    	@name_grp VARCHAR(50),
    	@h_specnumzone_grp INT,
    	@h_outprofilId_grp INT,
    	@h_fwdprofilId_grp INT
    	AS
    BEGIN
    	-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.
    	SET NOCOUNT ON;
     
    	-- variables locales
    	DECLARE
    		@Object INT,
    		@ResponseText VARCHAR(8000),
    		@url VARCHAR(3000)
     
    	-- construction de l'url d'ivocation du web service (en get)
    	SET @url = 'http://xxx.xxx.xxx.xxx:xxxx/.../ma_methode_web'
    	-- ajout des paramètres en get
    	SET @url = @url + '?compId_grp=' + cast(@compId_grp as varchar)
    	SET @url = @url + '&name_grp=' + @name_grp
    	SET @url = @url + '&h_specnumzone_grp=' + cast(@h_specnumzone_grp as varchar)
    	SET @url = @url + '&h_outprofilId_grp=' + cast(@h_outprofilId_grp as varchar)
    	SET @url = @url + '&h_fwdprofilId_grp=' + cast(@h_fwdprofilId_grp as varchar)
    	-- fin de construction de l'url
     
    	-- invocation des procédures stockées étendues
    	EXECUTE master..sp_OACreate 'MSXML2.XMLHTTP', @Object OUT;
    	EXECUTE master..sp_OAMethod @Object, 'open', NULL, 'get', @url, 'false'
    	EXECUTE master..sp_OAMethod @Object, 'send'
    	EXECUTE master..sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT
    	SELECT  @ResponseText AS ResponseText
    	EXECUTE	master..sp_OADestroy @Object
     
    END
    voilà...

    Cependant, je passe mes paramètres en 'get'... Oui, mais il me fadrait les passer en soap...
    quelqu'un aurait une idée ?

    j'ai essayé de faire ça, mais ça n'a pas l'air de fonctionner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EXECUTE master..sp_OASetProperty @Object, 'compId_grp', @compId_grp
    En informatique, le problème se situe toujours entre le clavier et l'écran !
    Il y a deux chemins entre le clavier et l'écran : Par l'UC et par l'utilisateur.

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 44
    Points : 55
    Points
    55
    Par défaut Mention Résolu ;)
    Bonjour,

    Noublie pas la mention Résolu pour ton problème.
    Bien Joué.

  6. #6
    Membre éprouvé Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 822
    Points : 1 108
    Points
    1 108
    Par défaut
    En fait mon problème n'est pas résolu à 100 %

    en effet, actuellement, j'utilise un protocole GET pour passer mes paramètres, le but étant d'utiliser un protocole SAOP...

    la question reste posée

    merci d'avance.
    En informatique, le problème se situe toujours entre le clavier et l'écran !
    Il y a deux chemins entre le clavier et l'écran : Par l'UC et par l'utilisateur.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 14/05/2009, 12h57
  2. Réponses: 3
    Dernier message: 30/12/2008, 09h33
  3. Réponses: 27
    Dernier message: 08/03/2007, 16h09
  4. Envoyer un mail depuis une procédure stockée
    Par bd0606 dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 03/10/2005, 11h51
  5. Réponses: 6
    Dernier message: 18/05/2005, 14h04

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