欢迎来到天天文库
浏览记录
ID:20983209
大小:52.50 KB
页数:3页
时间:2018-10-18
《用openxml将xml数据转换为关联数据--》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、用OPENXML将XML数据转换为关联数据>> 从SQLServer2000开始,微软开始支持XML类型的数据。在SQLServer2005中,微软延续了这一特性,并加强了对XML数据列、XML变量以及XML索引的支持。 在数据库中存储XML数据是一个很出色的特征。对于大部分的数据处理需求来讲,将XML数据格式化为其它关联数据是十分重要。这也是引入OPENXML函数的原因。OPENXML是一个SQLServer提供的函数,它的作用是接收XML数据,提供内存中XML数据的行集视图。 一个OPENXML函数用例 在下面的例子中,我们将演示如何使用OPENXML函数。假定我们现
2、在正在从事一个网上购物系统开发。在这个场景中,顾客选择登录网站方式购买多种产品。因为根据公司的商业模式,通过网站购物能够节省成本。我们假定大部分的顾客都购买了七件或者更多的商品。我们的目标是当客户频繁的访问网站的时候,要尽量减少数据库的调用。我们的想法是将网页上提交的采购需求存储为XML文档,并且将其中的XML数据以字符串的形式传送给数据库底层的程序处理。这样,我们就可以在一次数据库调用中将XML数据中的订单信息插入数据库中。 我们该如何解决上面的问题呢?首先我们看看将要编辑的网页数据。一个简单的XML文档含有来自网站的很多核心信息,包括:产品名称、价格、日期以及顾客资料。列表
3、A包含了一个简单的XML数据流。<ShoppingCart><PurchaseProductID=7Price=10.00SaleDate=10/11/2006SaleBatchID=4523CustomerID=2398/><PurchaseProductID=99Price=25.00SaleDate=10/11/2006SaleBatchID=4523CustomerID=2398/><PurchaseProductID=32Price=12.00SaleDate=10/11/2006SaleBatchID=4523Customer
4、ID=2398/><PurchaseProductID=11Price=90.00SaleDate=10/11/2006SaleBatchID=4523CustomerID=2398/><PurchaseProductID=7Price=50.00SaleDate=10/11/2006SaleBatchID=4523CustomerID=2398/><PurchaseProductID=8Price=67.35SaleDate=10/11/2006SaleBatchID=4523CustomerID=2398/><PurchaseP
5、roductID=45Price=29.99SaleDate=10/11/2006SaleBatchID=4523CustomerID=2398/><PurchaseProductID=54Price=49.49SaleDate=10/11/2006SaleBatchID=4523CustomerID=2398/></ShoppingCart> 列表A 然后,我们需要设计一个网页接口提供存储程序的调用。通过调用这一存储程序,将XML数据流存储至数据库。列表B是这一存储程序的实现内容。CREATEPROCEDUREusp_InsertShoppin
6、gCartOrder( xmlXML)ASBEGIN DECLAREPointerINT EXECUTEsp_xml_prepareumentPointerOUTPUT,xml INSERTINTO OPENXML(Pointer,'/ShoppingCart/Purchase') ONEY, SaleDateSMALLDATETIME, SaleBatchIDINT, CustomerIDINT ) EXECsp_xml_removeumentPointerEND 列表B 这一存储程序支持XML数据类
7、型(SQLServer2005中新特色)作为输入参数(我们也可以使用变量字符数据类型作为我们的12下一页>>>>这篇文章来自..,。输入参数,例如VARCHAR(max)或者定义VARCHAR数据类型)。 接下来,我们调用系统程序sp_xml_prepareument,它不仅创建了XML文档在内存中的表示,也允许XML文档作为调用参数。一旦我们拥有了指向内存中XML文档的句柄,就可以调用OPENXML函数。在函数调用中使用不同的参数,还可以对XML数据的返回结果集进行详细的控制
此文档下载收益归作者所有