• ----:)欢迎访问源码网(:----
    • 首页
    • 博客
    • 学院
    • 下载
    • 论坛
    • 影视
    • 发布源码
    • RSS
    • ITPig
    • 笑话网
    • 百家姓
    • 繁體中文

源码网 - 中国第一源码门户
选择镜像:网通镜像 - 电信主站
  • 首 页
  • 新闻动态
  • 网站运营
  • 网页制作
  • WEB开发
  • 编程开发
  • 图像媒体
  • 操作系统
  • 数据库
  • 服务器
热门搜索 优化 SEO 故事 cms IIS7 MySQL 个人 AdSense 主题推广 | 文章搜索: 高级搜索
会员登录/控制面版您的位置: 学院首页 >> 数据库 >> MSSQL >> 详细内容
 

推荐文章

  • SQL数据库的备份、压缩与SQL数据库数据处理的方法
  • 压缩SQL数据库
 
 

热点文章

  • 安装SQL Server 2005实例环境图解
  • SQL数据库的备份、压缩与SQL数据库数据处理的方法
  • SQL SERVER 2005数据库镜像
  • SQL数据库还原出现错误112(磁盘空间不足)的解决办法
  • 如何使用SQL Server 2000中的XML功能
  • Server 2005性能排错
  • SQL Server 2000中的SQL语言简介
  • 在SQL Server中的关系型数据仓库分区策略
  • SQLServer删除日志方法
  • 压缩SQL数据库
  • SQL精妙语句
  • SQL Server 2000中的SQL语言简介(一)
 
 

相关文章

  • Microsoft SQL Server 2005 中的 XML 选项
 
 

百度搜索

 
 

Microsoft SQL Server 2005,面向的本机XML Web Services概述

  • 阅览次数:
  • 文章来源: a hear
  • 原文作者: 不详
  • 整理日期: 2007-04-06
  • 发表评论
  • 字体大小:
  • 小
  • 中
  • 大

简介

Microsoft® SQL Server™ 2005 提供了一个标准机制,用于使用 SOAP 通过 HTTP 访问数据库引擎。通过使用此机制,可将 SOAP/HTTP 请求发送到 SQL Server 以执行以下内容:

◆Transact-SQL 批处理语句,带参数或不带参数。

◆存储过程,扩展存储过程以及用户定义的标量值函数。

在 SQL Server 2005 之前,可用于连接 SQL Server 的唯一机制就是通过名为 Tabular Data Stream (TDS) 的自定义二进制协议。利用 SOAP/HTTP 访问,我们提供了一种开放的且具有相关文档的协议,可以作为后备手段,以连接到 SQL Server。提供 SOAP/HTTP 访问,可以使更多类型的客户端访问 SQL Server,其中包括“无痕迹安装”客户端,因为已不再需要在客户端设备上安装 Microsoft 数据访问组件 (MDAC) 栈以尝试连接到 SQL Server。它方便了与各种平台上的 .NET、SOAP 工具包、Perl 以及更多功能的互操作。由于 SOAP/HTTP 访问机制基于各种应用广泛的技术(如 XML 和 HTTP),它能内在地促进异构环境中与 SQL Server 的互操作性及对 SQL Server 的访问。任何能够分析 XML 和提交 HTTP 请求的设备现在都能够访问 SQL Server。

很多企业都采用异构的环境,其中运行于 UNIX 和 Linux 平台上的应用程序可能需要连接到 SQL Server。在以前,此类用户唯一可用的解决方案就是使用 JDBC 或 ODBC 驱动程序。SOAP/HTTP 访问现在提供另一个低成本的后备方法。对于 DBA 使用 Perl 编写了运行于 UNIX 上的脚本以管理 SQL Server 资源的场景,这非常有用。在开发使用智能集成开发环境 (IDE)(其中内置了 SOAP/HTTP 支持,如 Microsoft Visual Studio® .NET 或 Jbuilder 就属于此类 IDE)开发客户端应用程序时,这也十分有用。这些 IDE 将生成特定的代理代码,这些代理代码对 SQL Server 通信进行抽象,并提供客户端应用程序可以使用的对象。使用 SOAP/HTTP 还实现了随时随地对 SQL Server 的访问,而这使得开发用于移动设备或偶尔连接的设备的应用程序更为容易。一旦建立了连接,并且服务器已开始处理请求,则可以使用 TDS 所基于的客户端上的现有机制(如使用 SqlClient、ODBC 和 OLEDB)对此进行监视。



要求

SQL Server 2005 本机 Web 服务要求使用 Microsoft Windows Server™ 2003 作为操作系统,因为它们依赖于此版本提供的内核模式 http 驱动程序 http.sys。由于 SQL Server 利用内核模式 http.sys 驱动程序,所以不必安装 IIS 以在 SQL Server 外公开 Web 服务,这就简化了管理。

应该根据应用程序要求决定是否安装 IIS。

例如,特定的应用程序可能从使用显式中间层而受益。在这种情况下,IIS 将很有用。

HTTP 终结点

为了将 SQL Server 设置为可以本机侦听 HTTP SOAP 请求的 Web 服务,需要创建 HTTP 终结点并定义该终结点公开的方法。当创建 HTTP 终结点时,必须使用唯一的 URL 进行创建,将使用此 URL 侦听传入的 HTTP 请求。例如,如果您使用 URL“http://servername/sql”创建一个终结点,发送到 http://servername/sql 的 SOAP 请求将由 http.sys. 拾取,然后将此 SOAP 请求路由到承载与该 URL 关联的终结点的 SQL Server 实例。请求将从此处传递到 SQL Server 内的 SOAP 处理层。

SQL Server 实例可以具有多个终结点,每个终结点都可以将任意数量的存储过程(通过使用 Transact-SQL 或 CLR 实现)公开为终结点上的 WebMethod,且可以通过 SOAP 远程过程调用 (RPC) 而调用。WebMethod 可以具有与所公开的实际存储过程不同的名称。WebMethod 名称就是在 WSDL 中作为操作名称向用户显示的名称。

注意   务必指出,终结点中的 WebMethod 子句是特定于 SQL Server 2005 的,与 ASMX WebMethod 属性无关。

用户可以对终结点执行 AdHoc Transact-SQL 语句。这可以通过使用数据定义语言 (DDL) 中的一个可选子句在终结点上允许进行批处理而实现。允许进行批处理将隐式地将名为“sqlbatch”的 WebMethod 公开给用户。在接下来的各节中将进一步对这些概念进行说明。

创建 HTTP 终结点

HTTP 终结点是使用 Transact-SQL DDL 创建和管理的。创建 HTTP 终结点是允许 HTTP/SOAP 访问 SQL Server 2005 的第一步。每个终结点都具有名称和一个选项集合,这些选项一起定义终结点的行为。

为了演示如何使用“创建 HTTP 终结点”的内容,让我们看看 Hello World 示例,以了解如何通过 SQL Server Web 服务调用存储过程。



首先,使用以下 T-SQL 在主数据库中创建名为“hello world”的存储过程。此存储过程只是显示输入参数中提供的字符串。

CREATE PROCEDURE hello_world

(@msg nvarchar(256))

AS BEGIN

select @msg as 'message'

END

然后,使用以下 T-SQL 创建 HTTP 终结点,此终结点将允许将此存储过程作为一个 WebMethod 进行访问:

CREATE ENDPOINT hello_world_endpoint

STATE = STARTED

AS HTTP (

AUTHENTICATION = ( INTEGRATED ),

PATH = '/sql/demo',

PORTS = ( CLEAR )

)

FOR SOAP (

WEBMETHOD

'http://tempuri.org/'.'hello_world'

(NAME = 'master.dbo.hello_world'),

BATCHES = ENABLED,

WSDL = DEFAULT

)

所有终结点均存储在主数据库中,在元数据视图 master.sys.http_endpoints 中。除非进行定义,否则终结点不会具有任何 SOAP 方法。在上例中,我们将存储过程 master.dbo.hello_world 作为“hello_world”WebMethod 公开;该 WebMethod 可以使用任何名称,如可以命名为“http://tempuri.org”命名空间下的“testproc1”。如果将 WSDL 子句的值指定为 DEFAULT,将使终结点使用默认格式对请求 WSDL 生成的 WSDL 进行响应。通过在上面的语句中设置 WSDL=NONE,可以取消 WSDL 生成。在接下来的部分中,我们将对 WSDL 生成的细节进行讨论。


[1] [2]

上一篇:PHP使用zlib扩展实现页面GZIP压缩输出
下一篇:构建支持Master/Slave读写分离的数据库操作类
  • 网友评论:
  • 查看所有评论
  • 我要发表评论
您的网名:
留言主题:
你要发表的内容:

 

关于本站 | 广告联系 | 版权声明 | 网站地图 | 发布软件 | 帮助中心 | 源码论坛

Copyright © 2005-2007 CodePub.Com  程序支持:木翼  滇ICP备05005971号