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

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

ID:38709101

大小:43.50 KB

页数:6页

时间:2019-06-18

利用DataShape技术构建层次记录集_第1页
利用DataShape技术构建层次记录集_第2页
利用DataShape技术构建层次记录集_第3页
利用DataShape技术构建层次记录集_第4页
利用DataShape技术构建层次记录集_第5页
资源描述:

《利用DataShape技术构建层次记录集》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、在VB中利用DataShape技术构建层次记录集一、引言在开发数据库应用程序的过程中,经常会遇到以层次结构显示相关记录的情况。如显示公司组织结构中各个部门员工的分布,又比如显示所有客户在一段时期内的详细购货记录条目。一般,这些数据在数据库中都是以两张单独的数据表存在的,因此在把实际数据按要求呈现给用户前,首先需要建立这两张数据表之间的连接,而常规的方法都是使用SQL语句中的Join语法实现。在建立连接之后,再通过循环、递归等算法完成界面呈现。表面上看,这样的实现方式确实满足了功能的要求,但是仔细分析后就会发现,这并不是一种有效的实现方式。第一,假

2、设你希望获取的是一个客户购货清单,在使用Join语句后会发现返回的记录中包含了大量重复的客户名记录,在网络环境下,这些重复记录会增加大量的网络流量;第二,当你获得这些记录集后,还需要构造合理的算法呈现记录,如果算法不佳再加上显示的记录数量大,在客户端会造成一定的延时。因此我们需要对上述实现方式加以改进,而最佳的方法就是直接使用数据定型技术。二、概述数据定型(DataShape)技术是ADO内置的一项数据服务,其最大的特点是可以在数据检索过程中直接生成清晰的层次结构,并以关联记录集(Recordset)的形式返回检索结果。由于层次结构的构造在检索过

3、程中完成,因此返回的记录集中只包含了唯一的有效记录(如客户名称),加上该记录的关联信息直接以记录集的形式返回,在显示结果时只需要遍历记录集的记录即可完成结果的呈现。三、使用数据定型技术要在应用程序中使用数据定型(DataShape)技术,首先需要在数据连接字符串中增加一个属性。原先,我们在建立连接对象时构造的连接字符串的形式如下所示:strConn=“DataProvider=Microsoft.Jet.OLEDB.4.0;DataSource=NWIND.MDB”;而使用数据定型(DataShape)技术的连接字符串的形式为:strConn=“

4、Provider=MSDataShape;DataProvider=Microsoft.Jet.OLEDB.4.0;DataSource=NWIND.MDB”从上述两个连接字符串可以看到,数据定型(DataShape)技术需要使用两个提供者,一个是服务提供者“MSDataShape”,用来执行数据定型服务;第二个是数据提供者SQLOLEDB.1;用来完成常规的数据操作。为了有效区分两类数据提供者,在调用中分别采用了“Provider”属性和“DataProvider”属性加以区分,这也是ADO中建议的调用方式。在设置了正确的数据连接字符串之后,下

5、面就需要构造数据定型语句了。在ADO提供的数据定型(DataShape)技术中包含了三种不同的返回记录集形式:关系型层次记录集:这种形式返回标准的父记录集及相关的子记录集;参数型层次记录集:这种形式和关系型层次记录集类似,也是返回标准的父记录集和相关的子记录集,只是子记录集的检索只有在明确指定父记录后才执行。汇总型层次记录集:这种形式的记录集除了返回匹配父记录的子记录集之外,在父记录集中还可以包括由汇总函数生成的数据(如合计的销售额)。下面,就以关系型层次记录集为例,向大家说明如何在数据库应用程序利用数据定型(DataShape)技术实现层次记录

6、集。四、构建数据定型语句要应用数据定型技术,仅仅声明连接字符串是不够的,还需要依照数据定型语法构建操作语句。下面,我们先来看一个已经构建好的关系型层次记录集的数据定型语句:“SHAPE{SelectCustomerID,CustomerNamefromCustomers}ASCustomersAPPEND({Select*fromOrders}ASOrdersRELATE’CustomerID’TO’CustomerID’)ASOrders”从上面的语句可以看到,数据定型语句和我们日常使用的SQL语法非常相似,这个示例中的数据定型语句由两部分组成

7、,第一部分“SHAPE{SelectCustomerID,CustomerNamefromCustomers}ASCustomersAPPEND({Select*fromOrders}ASOrders”的大括号中分别以标准的SQL语句返回Customers表和Orders表的记录集,第二部分“RELATE’CustomerID’TO’CustomerID’”申明两个数据表之间的关联字段,并完成连接的建立。这里特别需要说明几点:AS关键字后面表示的是记录集的别名,尽管语法本身不要求必须提供别名,但是在实际使用过程中还是建议使用别名,尤其是最后一个A

8、S关键字,如果需要访问子记录集,这个别名是关键的,否则必须获取系统自动生成的记录集名称,才能正确访问其中的记录。用于建立两个数据表之间的

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

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

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