使sql server数据支持 xml--

使sql server数据支持 xml--

ID:20455360

大小:50.50 KB

页数:3页

时间:2018-10-12

使sql server数据支持 xml--_第1页
使sql server数据支持 xml--_第2页
使sql server数据支持 xml--_第3页
资源描述:

《使sql server数据支持 xml--》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、使SQLServer数据支持XML>>  如果你在IT业工作,那么你很可能听说过XML;但如果你的工作主要与SQLServer有关,那么你可能并没有直接运用过XML。XML已经是L101工具条中的Shippers例子中的XML数据。与运用ADO或其它任何技术相比,HTTP查询会让我们更容易地来访问网站或L文件。模板作为文件保存在服务器上。因此,如果你在一个叫做GetShippers.xml的模板中封装了ShippersSELECT查询,那么URL查询的形式就会是:localhost/Northplates/GetShippers.xml。

2、模板也可以带有参数,当你的模板调用一个存储过程时,该功能会很有用。在URL查询和模板查询中,如果你想从查询返回一个HTML页面,那么你可以指定一个XSLT样式表,将它用于XML。模板查询是读取数据的一个更安全的方法,它可以被缓存以得到更好的性能。  你也可以用FORXML子句将数据读取成XML格式,该方法从SQLServer表中返回数据,你可以把它们看做是XML数据。你可以在一个SELECT语句中运用FORXML子句,它有三种模式可以以不同的格式来返回XML:RAL解析成一个数据树,并将那个数据的句柄传递到OPENXML函数。然后你就可以

3、操作那个数据了:进行查询、将它插入到表中、等等。OPENXML函数可以带有三个参数:用于XML文档内部显示的句柄、一个rol_removeument将XML数据从内存中删除。  通过SQLXML得到更多的支持  通过发布SQLXML(也被称为icrosoft也在SQLServer中提供了更多的XML支持。已经有三个SQLXML的版本了,它们包含的一些额外的功能有updategram和XMLBulkLoad。你可以在线下载最新的版本SQLXML3.0(见资源)。你可以通过基于XML的模板,运用updategram来插入、更新或删除表中的数据

4、。该模板有一个beforeblock,它描述了记录更新前的当前状态;还有一个afterblock,它描述了记录的变化。下面就是updategram的一个例子,它修改了Shippers表中的一个公司的Phone字段:  <updg:sync>12下一页>>>>这篇文章来自..,。<updg:before><ShippersShipperID=3/></updg:before><updg:after><ShippersPhone=(503)555-0108/></updg:after></updg:sync>  在缺省情况下,updategr

5、ams认为beforeblock和afterblock中的字段指的是表和列。但updategrams也可以用一个mappingschema。Mappingschema将一个XML文档中的元素与一个表中的元素关联了起来。如果在上面的模板中,你引用属性名SID,而不是ShipperID,那么mappingschema就会将SID映射到ShipperID列。你可以通过HTTP(同模板查询一样)或通过ADO将updategrams发送到SQLServer。它们也可以被参数化,带有输入值。Updategrams提供了一个方法,使我们可以直接从XML

6、更新SQLServer数据,这样就不用从XML文档得到数据,然后再用一个记录集或调用一个存储过程了。Updategrams只是可以简单地插入、更新或删除数据,所以如果你需要查看一个值是否存在、或在更新前查看一些商业规则,那么你就应该用OPENXML。  虽然你可以用OPENXML函数和updategrams来插入数据,但对于加载大量的XML数据来说,这两种方法都不实用。你应该用XMLBulkLoad将大量的XML数据插入到SQLServer表中。实际上,我们是用SQLXMLBulkLoad组件来加载数据的,你可以从一个客户端应用程序来调用

7、这个组件。在建立到数据库的连接后,bulkload组件需要一个路径来访问mappingschema,从而将XML属性和元素映射到数据库对象,而且还需要路径来访问一个XML文档或一个XML流。在BulkLoad组件中,你可以指定是否执行数据表检查约束(checkconstraint)、是否忽略通过复制键添加的记录、当插入数据时,是否应该锁定数据表,等等。  缺省情况下,大量加载不是事务处理型(transactional)的,所以如果出现错误,截止到错误点前插入的数据就会保留在数据库中。你可以指定所有加载的数据都是在一个单独的事务处理过程中的

8、,因此该过程要么会十分成功,要么会回滚。如果你用了事务处理,所有的数据在插入前都会被写进一个临时的文件。这就意味着,你需要足够的磁盘空间来保存临时文件,而且加载数据可能会相当慢。XMLBulk

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。