`
yanhuanwang
  • 浏览: 55608 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

[翻译]通过WebService调用SQLXML(SQL Server 2005)

阅读更多
原文地址:http://www.codeproject.com/useritems/SQLToXMLWebService.asp


[翻译]通过WebService调用SQLXML(SQL Server 2005)


原文发布日期:2007.02.04
作者:Russ Quinn
翻译:webabcd


介绍
我最近需要给用户创建一个feed,所有的数据都是放在sqlserver数据库里的,所以我疯狂的查找把sqlserver里的数据转换成xml的最快速的方法。现在我知道了xml已经成为了sqlserver2005的一部分。

之后我萌生出了一个主意,就是创建一个webservice用于数据库转xml的服务,这样用户就可以在任何时候调用他们需要的数据(如果需要也可以传参数)

现在,我知道你将会说“这不是什么新东西也没有什么难度”,但这正是我写本文的目的,看完本文之后你会发现原来实现这个功能是如此简单。我不敢相信在CodeProject居然没有一个人提出这样的解决方法。


代码
首先,在你的sqlserver2005数据库(要有相关的数据)中创建如下存储过程
CREATE PROCEDURE [dbo].[GetStories]
    
@fromDate datetime,
    
@toDate datetime
AS 
    
BEGIN
 
        
select  dbo.Story.id,
                description,
                notes,
                
text,
                publicationdate,
                authorsnames,
                keywords
        
from    dbo.Story
                
inner join dbo.Status on dbo.Story.StatusId = dbo.Status.id
        
where   publicationdate between @fromDate and @toDate
                
and dbo.Status.status = 'live'
        
order by publicationDate
        
FOR     XML PATH('story'),
                    ROOT(
'stories')
    
END

其关键的步骤就是“FOR XML PATH(###), ROOT(###)”这部分。他告诉sqlserver返回的xml每一行都要有名为“story”的节点,并且xml文档的根节点名为“stories”

下一步新建一个webservice,增加一个新的WebMethod。在这个方法中连接数据库并获得数据。

现在,调用SqlCommand类的ExecuteXmlReader方法以返回xml,类似如下代码
XmlReader reader = command.Command.ExecuteXmlReader();

这个reader就是一个XmlDataDocument流,它可以从WebMethod返回。下面是我写的一段WebMethod,我用了一个数据库帮助类App_Data.SqlSPCommand来获取数据库中的值。
[WebMethod(Description = "Get stories based on a centre, and a from and to date",
CacheDuration 
= 600, MessageName = "GetStoriesForCentre")]
public XmlDataDocument GetStoriesForCentre(string centre, DateTime fromDate, DateTime toDate)
{
 Database db 
= new Database("TarkStoriesConnectionString");
 
 
using (db.Connection)
 
{
  db.OpenConnection();
 
  App_Data.SqlSPCommand command 
= new App_Data.SqlSPCommand("GetStoriesForCentre", db.Connection);
  command.AddParameter(
"@centre", SqlDbType.VarChar, centre);
  command.AddParameter(
"@fromDate", SqlDbType.DateTime, fromDate);
  command.AddParameter(
"@toDate", SqlDbType.DateTime, toDate);

  XmlReader reader 
= command.Command.ExecuteXmlReader();
 
  XmlDataDocument xml 
= new XmlDataDocument();
  xml.Load(reader);

  
return xml;
 }

}


就这些东西了

调用webservice就按我们通常做的方法就行,提供一些参数(本例中是两个日期类型)就可以返回xml,本例中返回的xml如下
<?xml version="1.0" encoding="utf-8" ?>
<stories>
    
<story>
        
<id>514</id>
        
<description>some description</description> 
        
<notes>no notes available</notes> 
        
<text>blah blah blah</text> 
        
<publicationdate>2007-01-30T00:00:00</publicationdate> 
        
<authorsnames>Sue Williams</authorsnames>
        
<keywords>boring story</keywords>
    
</story>
</stories>

就是如此简单,希望本文能对你有一些帮助


译者注:关于SQLXML的更多内容可以参看http://www.stylusstudio.com/sqlxml_tutorial.html


译者注:感谢本页第三位留言的兄弟,他指出了本文的一个失误,“存储过程是2个参数,而code包括了3个参数”,但是文中的方法是没问题的,我已测试通过。

webabcd 2007-03-18 22:18 发表评论
分享到:
评论

相关推荐

    SQL Server调用Webservice示例

    调用Web Service在SQL Server中主要通过两种方式实现:T-SQL的XML方法和使用.NET Framework的存储过程。 1. **T-SQL的XML方法**: 使用T-SQL的内置函数如`OPENXML`、`sp_xml_preparedocument`和`sp_xml_...

    Android通过webservice连接Sqlserver实例

    总的来说,Android通过WebService连接SQLServer涉及到Android网络编程、服务器开发、数据库操作等多个方面,需要对这些技术有深入理解和实践经验。通过学习和实践,开发者可以创建出高效、稳定且安全的数据交互应用...

    SQL Server调用WebService方法

    总结,SQL Server 2005调用WebService方法涉及到数据库与外部系统的集成、XML数据处理、存储过程编写等多个方面。通过合理运用这些技术,可以实现数据库系统与Web应用程序之间的紧密协作,提升整体系统的功能和效率...

    Android通过WebService访问SQLServer

    本教程主要探讨如何在Android应用中通过WebService访问SQLServer数据库,实现数据的增、删、查操作。以下是相关知识点的详细说明: 1. **Android平台与Web服务的交互**: Android系统提供了多种方式与远程服务器...

    SqlServer触发器调用WebService

    在了解如何通过Sql Server触发器调用WebService之前,我们首先需要对触发器有一个基本的认识。触发器是一种特殊的存储过程,它被定义为当特定类型的事件(如INSERT、UPDATE或DELETE)发生在指定的表上时自动执行的一...

    调用webservice,通过post传参读取返回的XML

    5. **处理返回的XML**:一旦WebService调用完成,服务器会返回一个XML响应。这个响应可以使用.NET中的`XmlDocument`类进行解析。`XmlDocument`提供了读取、操作和处理XML文档的方法。 6. **Default.aspx和Default....

    WebService使用,客户机+服务WebService+SqlServer2005,附有说明

    这个项目旨在帮助开发者理解WebService的工作流程,通过C#编程语言,Visual Studio 2005(Vs2005)开发环境,以及SQL Server 2005数据库的使用来实现。 一、WebService简介 WebService是一种基于互联网的、平台无关...

    android登录,webservice连接sql数据库,布局实现界面切换

    - C#使用ADO.NET框架与SQL Server数据库进行通信。通过SqlConnection对象建立连接,SqlCommand对象执行SQL命令,SqlDataReader或DataTable用于读取结果集。 - 登录验证时,可能需要编写一个存储过程,检查用户输入...

    在SQL SERVER 2005中调用Web Service

    本文将详细介绍如何在SQL Server 2005中调用Web Service,并通过具体的实例进行说明。 #### 背景与需求 随着企业应用越来越复杂,不同的系统之间需要频繁地交换数据和服务。Web Service作为一种开放标准,允许应用...

    WebService远程访问SQLServer数据库源码

    WebService是一种基于Web的服务交互技术,它允许不同系统之间通过网络进行数据交换和功能调用。在本案例中,“WebService远程访问SQLServer数据库源码”是一个实现了利用WebService来远程操作SQL Server数据库的应用...

    WebService与SQL的结合使用

    1. 数据库访问:通过SOAP请求,客户端可以调用服务端的WebService,执行SQL查询或操作,如CRUD(创建、读取、更新、删除)数据库记录。 2. 数据交换:WebService返回的结果通常以XML格式,与SQL查询结果匹配,便于...

    通过webservice连接数据库

    本篇文章将详细探讨如何在Android平台上通过WebService实现与SQL Server数据库的交互。 WeberService作为一种远程服务调用技术,常用于不同系统间的通信,而SOAP(Simple Object Access Protocol)协议是其中的一种...

    使用WebService的方法返回xml格式的数据

    在本场景中,我们将探讨如何通过WebService来调用数据库中的数据并以XML格式进行返回。 1. **XML基础**:XML全称为Extensible Markup Language,它是一种自定义标记语言,用于结构化地表示数据。XML文档由元素、...

    oracle 调用webservice

    Oracle 调用 Webservice 实现详解 本文将详细介绍 Oracle 调用 Webservice 的实现过程,包括 Webservice 的基本概念、 Java 编写简单的 WebService...通过本文,读者可以了解 Oracle 调用 Webservice 的详细实现过程。

    SQL_SERVER_调用_Webservice

    SQL Server 作为一款广泛使用的数据库管理系统,也支持通过 T-SQL 或者 CLR(Common Language Runtime)集成的方式来调用 WebService,从而实现与其他系统的交互。本文将详细介绍如何在 SQL Server 中调用 ...

    andriod通过Webservice访问SQL Server实例

    本文将深入探讨如何使用Android(Java)通过C#编写的Web服务访问SQL Server实例。 首先,我们要理解Web服务的基本概念。Web服务是一种基于互联网的,能够被其他应用程序(如Android应用)调用的接口。常见的Web服务...

    java + webservice + sqlserver

    综上所述,"java + webservice + sqlserver"项目涉及到了Java Web服务的开发、客户端调用、以及与SQLServer数据库的交互,这是一项综合性的技术实践,要求开发者具备Java编程、Web服务原理、数据库管理和调试技巧。...

    sql调用webservice

    三、SQL Server调用Web Service示例 在SQL Server中,可以使用OPENROWSET函数配合HTTP provider来调用Web Service。例如: ```sql DECLARE @XMLResponse XML EXEC @ReturnCode = sp_OACreate 'MSXML2.XMLHTTP', @...

    wsdl.rar_WEBservice-Sqlserver_java webservice_webservice sgip_w

    【标签】"webservice-sqlserver java_webservice webservice__sgip wsdl_webservice_ wsdl.rar"进一步揭示了技术栈。"sqlserver"表明数据库管理是通过SQL Server完成的,这通常涉及到使用JDBC(Java Database ...

Global site tag (gtag.js) - Google Analytics