SQL Server 2005 SOAP エンドポイント
SQL Server 2005 の CREATE ENDPOINT ... AS HTTP を使って、Web Service を作成する方法は以下の通り。 ここでは cities というテーブルの city_name フィールドに含まれる文字をパラメータとして受け取り、 その結果を返す GetCityName というストアドプロシージャを Web Service とする方法を例にとります。
CREATE PROCEDURE GetCityName ( @s VARCHAR(100) ) AS BEGIN SET NOCOUNT ON; SELECT * FROM cities WHERE city_name LIKE '%' + @s + '%'; END GO CREATE ENDPOINT GetCityWS STATE = STARTED AS HTTP ( SITE = 'localhost', PATH = '/sql/scpwtdb', AUTHENTICATION = (INTEGRATED), PORTS=(CLEAR) ) FOR SOAP ( WEBMETHOD 'GetCityName' ( name = 'scpwtdb.dbo.GetCityName', schema = STANDARD ), WSDL = DEFAULT, DATABASE = 'scpwtdb', BATCHES = ENABLED ); GO
上記コードによって、WSDL を http://localhost/sql/scpwtdb?WSDL として取得できるようになるので、 それを用いて、Web Service Proxy の生成等を行うと良いでしょう。ちなみに、結果セットは .NET プログラマにはお馴染みの DataSet として返ります。
関連書籍
このトピックに関するおすすめの参考資料は次です。