首页 > 数据库 > SQL Server > 正文

SQL server 2005中如何建立HTTP的端点

2024-08-31 00:49:58
字体:
来源:转载
供稿:网友

  sql2005提供了一个新的执行存储过程或者t-sql的方法,它可以以web服务的方式发布到服务器上,而无须使用iis 这个新特点通过http api把http端点暴露给用户,在winxp sp2和win2003上被支持

  建立一个http端点是非常简单的,如下:

create endpoint myendpoint?
state = started
as http (
 authentication = (integrated),
 path = '/sql/myendpoint',
 ports = (clear) )
for soap (
 batches = enabled,
 wsdl = default
)

  在上面的案例中我建立一个命名为myendpoint的端点,它在http://localhost/sql/myendpoint监听t-sql语句,你可以使用下面url测试它

  http://localhost/sql/myendpoint?wsdl.

  上面这个url还可以附加很丰富的参数,具体参见sql帮助

  下面这个例子显示如何通过javscript来调用端点执行t-sql语句,如下:

function sendbatchrequest( strservername, strurlpath, strquery )
{
  var objxmlhttp = null;
  var strrequest = "";
  objxmlhttp = new activexobject( "microsoft.xmlhttp" );
  objxmlhttp.open( "post", "http://" + strservername + strurlpath, false );
  objxmlhttp.setrequestheader( "content-type", "text/xml" );
  objxmlhttp.setrequestheader( "host", strservername );
  strrequest = "<soap-env:envelope
              xmlns:soap-env='http://schemas.xmlsoap.org/soap/envelope/'
              xmlns:sql='http://schemas.microsoft.com/sqlserver/2004/soap'>
               <soap-env:body>
                 <sql:sqlbatch>
                  <sql:batchcommands>" + strquery + "</sql:batchcommands>
                 </sql:sqlbatch>
               </soap-env:body>
            </soap-env:envelope>";
  objxmlhttp.send( strrequest );
  if( objxmlhttp.status == 200 )
   return objxmlhttp.responsexml.xml;
  else
   return "";
}
var response = sendbatchrequest( 'localhost', '/sql/myendpoint', 'select * from sys.http_endpoints' );

最大的网站源码资源下载站,

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表