-
Requête SOAP
Bonjour tout le monde,
Je dois appeler un web service via SQL-Server 2005 (SOAP).
Je me demandais quelle est la meilleur solution ? T-SQL, clr ?
J'ai navigué un peu sur le web et j'ai vu que les clr sont une bonne approche. Et un collègue m'a aussi parler de c# (j'imagine que c'est avec clr).
Bref, pouvez-vous me mettre sur la bonne piste ou avez-vous un bon tuto à me conseiller ?
Merci !
-
Bonjour,
Effectivement une procédure stockée d'assembly CLR, écrite en C# ou en VB.NET peut faire ce travail. Mais il faut bien considérer le fait que la sécurité de la base de données est un peu plus faible lorsqu'on autorise l'exécution de code managé.
Bien peu d'ouvrages existent sur ce sujet, comme vous l'avez constaté; le mieux que j'ai trouvé est Pro SQL Server 2005 Assemblies : même s'il date un peu, les bonnes pratiques et les détails que ce livre propose sont une base bien solide pour programmer en C# pour SQL Server. Il me semble que Bob Beauchemin est la personne qui publie le plus sur ce sujet.
Le mieux est probablement de travailler avec votre collègue sur ce sujet, tout en gardant à l'esprit l'aspect sécurité.
Sachez que j'ai écrit un chapitre sur ce sujet dans un livre co-écrit avec Mikedavem et SQLPro, à paraître, sur SQL Server 2014.
@++ ;)
-
Merci de votre réponse :ccool:
Je suis allé voir le lien de Bod Beauchemin et effectivement, il y a assez d'info pour que me guider dans la bonne direction.
Le livre à paraître c'est pour la version 2014 d'SQL Server? Nous sommes sur la version 2005 au boulot et prévoyons changer bientôt pour une version plus récente. Savez-vous si la migration ce fait en douceur car, hormis les données, nous avons une centaine de stored proc et je dois avouer que les sp me donne quelques soucis.
Merci!
-
Pour info : dans les versions précédentes de SQL Server (2005) il était possible de créer un endpoint SOAP pour que SQL Server puisse répondre à des requêtes de web service. Cette fonctionnalité est supprimée en 2008. Il n'est pas recommandé de faire générer du web service par la couche de données. La politique de Microsoft pour ce faire est de créer une couche en .NET en utilisant WCF (Windows Communication Foundation). Bon courage pour faire ça, c'est le genre de framework .NET conçu pour rendre chèvre. J'ai écrit un chapitre qui parle de ça et donne du code d'exemple en C# / WCF dans ce bouquin : Pro T-SQL 2012 Programmer's Guide .