利用DataShape技术构建层次记录集.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
利用DataShape技术构建层次记录集

在VB中利用DataShape技术构建层次记录集 一、引言 在开发数据库应用程序的过程中,经常会遇到以层次结构显示相关记录的情况。如显示公司组织结构中各个部门员工的分布,又比如显示所有客户在一段时期内的详细购货记录条目。一般,这些数据在数据库中都是以两张单独的数据表存在的,因此在把实际数据按要求呈现给用户前,首先需要建立这两张数据表之间的连接,而常规的方法都是使用SQL语句中的Join语法实现。在建立连接之后,再通过循环、递归等算法完成界面呈现。 表面上看,这样的实现方式确实满足了功能的要求,但是仔细分析后就会发现,这并不是一种有效的实现方式。第一,假设你希望获取的是一个客户购货清单,在使用Join语句后会发现返回的记录中包含了大量重复的客户名记录,在网络环境下,这些重复记录会增加大量的网络流量;第二,当你获得这些记录集后,还需要构造合理的算法呈现记录,如果算法不佳再加上显示的记录数量大,在客户端会造成一定的延时。因此我们需要对上述实现方式加以改进,而最佳的方法就是直接使用数据定型技术。 二、概述 数据定型(DataShape)技术是ADO内置的一项数据服务,其最大的特点是可以在数据检索过程中直接生成清晰的层次结构,并以关联记录集(Recordset)的形式返回检索结果。由于层次结构的构造在检索过程中完成,因此返回的记录集中只包含了唯一的有效记录(如客户名称),加上该记录的关联信息直接以记录集的形式返回,在显示结果时只需要遍历记录集的记录即可完成结果的呈现。 三、使用数据定型技术 要在应用程序中使用数据定型(DataShape)技术,首先需要在数据连接字符串中增加一个属性。原先,我们在建立连接对象时构造的连接字符串的形式如下所示: strConn = “Data Provider=Microsoft.Jet.OLEDB.4.0;Data Source=NWIND.MDB”; 而使用数据定型(DataShape)技术的连接字符串的形式为: strConn = “Provider = MSDataShape;Data Provider=Microsoft.Jet.OLEDB.4.0;Data Source=NWIND.MDB” 从上述两个连接字符串可以看到,数据定型(DataShape)技术需要使用两个提供者,一个是服务提供者“MSDataShape”,用来执行数据定型服务;第二个是数据提供者SQLOLEDB.1;用来完成常规的数据操作。为了有效区分两类数据提供者,在调用中分别采用了“Provider”属性和“Data Provider”属性加以区分,这也是ADO中建议的调用方式。 在设置了正确的数据连接字符串之后,下面就需要构造数据定型语句了。在ADO提供的数据定型(DataShape)技术中包含了三种不同的返回记录集形式: 关系型层次记录集:这种形式返回标准的父记录集及相关的子记录集; 参数型层次记录集:这种形式和关系型层次记录集类似,也是返回标准的父记录集和相关的子记录集,只是子记录集的检索只有在明确指定父记录后才执行。 汇总型层次记录集:这种形式的记录集除了返回匹配父记录的子记录集之外,在父记录集中还可以包括由汇总函数生成的数据(如合计的销售额)。 下面,就以关系型层次记录集为例,向大家说明如何在数据库应用程序利用数据定型(DataShape)技术实现层次记录集。 四、构建数据定型语句 要应用数据定型技术,仅仅声明连接字符串是不够的,还需要依照数据定型语法构建操作语句。 下面,我们先来看一个已经构建好的关系型层次记录集的数据定型语句: “SHAPE {Select CustomerID, CustomerName from Customers} AS Customers APPEND ({Select * from Orders} AS Orders RELATE ’CustomerID’ TO ’CustomerID’) AS Orders” 从上面的语句可以看到,数据定型语句和我们日常使用的SQL语法非常相似,这个示例中的数据定型语句由两部分组成,第一部分“SHAPE {Select CustomerID, CustomerName from Customers} AS Customers APPEND ({Select * from Orders} AS Orders”的大括号中分别以标准的SQL语句返回Customers表和Orders表的记录集,第二部分“RELATE ’CustomerID’ TO ’CustomerID’”申明两个数据表之间的关联字段,并完成连接的建立。 这里特别需要说明几点: AS关键字后面表示的是记录

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档