- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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关键字后面表示的是记录
您可能关注的文档
最近下载
- 国开2025年秋《农业推广》形成性考核1-3答案.docx
- 第七章_金属和半导体的接触.ppt
- 会计学课程设计报告会计学课程设计报告.doc VIP
- 6投资领域统计工作业务竞赛试题库.doc VIP
- 老年人运动能力下降多学科决策共识解读(2024版)PPT课件.pptx VIP
- GW-19CP.0011金风GWH 171-5.3 V11R01C100 机组产品说明书.pdf VIP
- 【MOOC】《中国马克思主义与当代》(北京科技大学)中国大学MOOC慕课答案.docx VIP
- 《数星星的孩子》课件.pptx VIP
- 【苏教版】六年级上册数学试题-计算能力训练六 .docx VIP
- ocean培训petrel re快速入门工作流程.pdf VIP
文档评论(0)