LLamar a un web service desde un procedimiento almacenado

23/05/2008 - 14:25 por Ana | Informe spam
Buenas a todos,

Necesitaría saber como llamar a un web service desde un procedimiento
almacenado de SQL Server 2005. Necesito enviar parametros, y el web service
necesita autentificación. ¿Alguien podría pasarme un ejemplo?

Un saludo,

Preguntas similare

Leer las respuestas

#1 Gux (MVP)
23/05/2008 - 16:24 | Informe spam
La mayoría considera que es una muy mala idea arquitectónica invocar a un web
service desde un procedimiento almacenado y coincido con eso.

De todas formas y si insiste en la idea, escriba un procedimiento almacenado
en .NET que actúe como consumidor del webservice. Imagino que esto puede
servirle de inspiración:

Sub TestConsumirWs()
Try

Const PROXYURI As String = "http://miservidorproxyweb:80"
Const WSUSER As String = "usuario"
Const WSPASSWD As String = "password"
Const WSWSDL As String =
"https://sitio.com/ws/services/Version?WSDL"

Dim objWs As New WebReference.VersionService

With objWs
.Url = WSWSDL
.Proxy = New WebProxy(PROXYURI, True)
.Credentials = New NetworkCredential(WSUSER, WSPASSWD)
End With

' Le paso por encima a la validacion SSL: valido yo mismo (o
sea... siempre True :-))
ServicePointManager.ServerCertificateValidationCallback = New
RemoteCertificateValidationCallback(AddressOf CertificadoEsValido)

' LLamo al ws
Console.WriteLine(objWs.getVersion())

Catch ex As Exception
Throw New Exception(ex.Message)
End Try

End Sub

Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/p...o.larriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Ana" wrote:

Buenas a todos,

Necesitaría saber como llamar a un web service desde un procedimiento
almacenado de SQL Server 2005. Necesito enviar parametros, y el web service
necesita autentificación. ¿Alguien podría pasarme un ejemplo?

Un saludo,



Respuesta Responder a este mensaje
#2 Jesús López
24/05/2008 - 23:48 | Informe spam
http://geeks.ms/blogs/sqlranger/arc...6/105.aspx

Saludos:

Jesús López
www.solidq.com



"Ana" escribió en el mensaje
news:uxF$
Buenas a todos,

Necesitaría saber como llamar a un web service desde un procedimiento
almacenado de SQL Server 2005. Necesito enviar parametros, y el web
service necesita autentificación. ¿Alguien podría pasarme un ejemplo?

Un saludo,

Respuesta Responder a este mensaje
#3 Juan Víctor Castillo
20/04/2009 - 20:24 | Informe spam
GUX Como estas:
Aunque este mensaje ya es viejo. Me gustaria saber porque consideras tu
que Arquitectonicamente esta mal que un Web service sea llamado desde un
procedimiento en SQL Server. ¿Me enfrento en este momento a la decisión y
para mi lo mejor seria crear un job y de ahi inmediatamente vaciarlo a la BD.

Al pendiente de tus comentarios.


Saludos.

"Gux (MVP)" wrote:

La mayoría considera que es una muy mala idea arquitectónica invocar a un web
service desde un procedimiento almacenado y coincido con eso.

De todas formas y si insiste en la idea, escriba un procedimiento almacenado
en .NET que actúe como consumidor del webservice. Imagino que esto puede
servirle de inspiración:

Sub TestConsumirWs()
Try

Const PROXYURI As String = "http://miservidorproxyweb:80"
Const WSUSER As String = "usuario"
Const WSPASSWD As String = "password"
Const WSWSDL As String =
"https://sitio.com/ws/services/Version?WSDL"

Dim objWs As New WebReference.VersionService

With objWs
.Url = WSWSDL
.Proxy = New WebProxy(PROXYURI, True)
.Credentials = New NetworkCredential(WSUSER, WSPASSWD)
End With

' Le paso por encima a la validacion SSL: valido yo mismo (o
sea... siempre True :-))
ServicePointManager.ServerCertificateValidationCallback = New
RemoteCertificateValidationCallback(AddressOf CertificadoEsValido)

' LLamo al ws
Console.WriteLine(objWs.getVersion())

Catch ex As Exception
Throw New Exception(ex.Message)
End Try

End Sub

Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/p...o.larriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Ana" wrote:

> Buenas a todos,
>
> Necesitaría saber como llamar a un web service desde un procedimiento
> almacenado de SQL Server 2005. Necesito enviar parametros, y el web service
> necesita autentificación. ¿Alguien podría pasarme un ejemplo?
>
> Un saludo,
>
>
>
Respuesta Responder a este mensaje
#4 Carlos Sacristan
21/04/2009 - 11:30 | Informe spam
Juan y Gux, si me permiten la intromisión, querría decir que el comentario
de que arquitectónicamente llamar a un web service desde SQL Server es un
error es porque éste es un sistema gestor de bases de datos relacionales,
preparado y optimizado para trabajar con ellas. Un WS no es nada de eso,
aunque técnicamente sea posible llamarlo. Por eso es siempre más
recomendable utilizar cada cosa para lo que fue pensada en su momento, ya
que en la mayoría de los casos será más óptimo.

Por tomar un ejemplo más cercano: los cursores existen y se pueden utilizar,
pero en la mayoría (no siempre) de los casos, SQL Server será más eficiente
si la solución desarrollada con cursores se hace orientada a conjunto de
registros.

"Caminar sobre el agua y desarrollar software a partir de unas
especificaciones es fácil. si ambas están congeladas."
Edward V. Berard, ingeniero informático

http://blogs.solidq.com/es/elrincondeldba

"Juan Víctor Castillo"
escribió en el mensaje
news:
GUX Como estas:
Aunque este mensaje ya es viejo. Me gustaria saber porque consideras tu
que Arquitectonicamente esta mal que un Web service sea llamado desde un
procedimiento en SQL Server. ¿Me enfrento en este momento a la decisión y
para mi lo mejor seria crear un job y de ahi inmediatamente vaciarlo a la
BD.

Al pendiente de tus comentarios.


Saludos.

"Gux (MVP)" wrote:

La mayoría considera que es una muy mala idea arquitectónica invocar a un
web
service desde un procedimiento almacenado y coincido con eso.

De todas formas y si insiste en la idea, escriba un procedimiento
almacenado
en .NET que actúe como consumidor del webservice. Imagino que esto puede
servirle de inspiración:

Sub TestConsumirWs()
Try

Const PROXYURI As String = "http://miservidorproxyweb:80"
Const WSUSER As String = "usuario"
Const WSPASSWD As String = "password"
Const WSWSDL As String >> "https://sitio.com/ws/services/Version?WSDL"

Dim objWs As New WebReference.VersionService

With objWs
.Url = WSWSDL
.Proxy = New WebProxy(PROXYURI, True)
.Credentials = New NetworkCredential(WSUSER, WSPASSWD)
End With

' Le paso por encima a la validacion SSL: valido yo mismo (o
sea... siempre True :-))
ServicePointManager.ServerCertificateValidationCallback = New
RemoteCertificateValidationCallback(AddressOf CertificadoEsValido)

' LLamo al ws
Console.WriteLine(objWs.getVersion())

Catch ex As Exception
Throw New Exception(ex.Message)
End Try

End Sub

Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/p...o.larriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Ana" wrote:

> Buenas a todos,
>
> Necesitaría saber como llamar a un web service desde un procedimiento
> almacenado de SQL Server 2005. Necesito enviar parametros, y el web
> service
> necesita autentificación. ¿Alguien podría pasarme un ejemplo?
>
> Un saludo,
>
>
>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida