频道直达 - 学院 - 下载 - 交易 - 特效 - 字库 - 手册 -排名-工具- 繁體
网页教学网站开发 设为首页
加入收藏
联系我们
建站搜索: 常用广告代码   用户注册 | 用户登陆
您当前的位置:中国建站之家 -> 网站开发设计技术教程 -> asp教程 -> Data Shaping技术--Shape Append 命令

Data Shaping技术--Shape Append 命令

作者:未知  来源:转载  发布时间:2005-9-18 0:32:43  发布人:acx

减小字体 增大字体

Shape APPEND 命令将子 Recordset 分配给父 Recordset 中 Field 对象的 Value 属性。

语法

SHAPE {parent-command} [[AS] parent-alias]

APPEND ({child-command} [AS] child-alias

RELATE parent-column TO child-column...) [[AS] chapter-alias] ...

组成说明

该命令的组成部分为:

parent-command, child-command 如下之一。

在尖括号(“{}”)中的查询命令,返回 Recordset 对象。命令发布给基本数据提供者,其语法取决于该提供者的要求。虽然 ADO 并不要求使用任何指定的查询语言,但通常是使用结构化查询语言 (SQL)。圆括号(“()”)是必需的关键字,它们将子集列追加到引用由查询命令返回的 Recordset 的父。


以前成形的 Recordset 的名称。


另一个 Shape 命令。


TABLE 关键字,后跟表的名称。
parent-column 由 parent-command 返回的 Recordset 中的列。

child-column 由 child-command 返回的 Recordset 中的列。

... “parent-column TO child-column”子句实际上是列表,并用逗号将每个定义关系分隔开。

chapter-alias 别名,对追加到父的列的引用。

parent-alias 别名,对父 Recordset 的引用。

child-alias 别名,对子 Recordset 的引用。

... 在 APPEND 关键字后面的子句实际上是列表(每个子句使用逗号分隔),定义被追加到父的另一个列。

操作

发出 parent-command 并返回父 Recordset。然后发出 child-command 并返回子 Recordset。

例如,parent-command 可以从客户表返回公司的客户 Recordset,而 child-command 从定货表返回所有客户的定单 Recordset。

一般,父和子 Recordset 对象必须各自拥有用于关联父和子的列。列在 RELATE 子句中命名,parent-column 在先,child-column 在后。在各自的 Recordset 中,列可以有不同名称,但必须引用相同信息以便指定有意义的关系。例如,Customers 和 Orders Recordsets 可以同时拥有 customerID 字段。

数据构形将子集列追加到父 Recordset。子集列中的值是对子 Recordset 中列的引用,子 Recordset 满足 RELATE 子句。即在给定父行中的 parent-column 与在子集子的所有行中的 child-column 具有相同的值。

当您访问在子集列中的引用时,ADO 将自动检索由引用表示的 Recordset。注意尽管已经检索了全部子 Recordset,但子集(chapter)仅表示行的子集。

如果追加的列没有 chapter-alias,则会自动生成其名称。列的 Field 对象将被追加到 Recordset 对象的 Fields 集合,其数据类型将是 adChapter。

有关定位分级 Recordset 的详细信息,请参阅访问分级 Recordset 中的行。

参数化命令

如果您正在处理大的子 Recordset(尤其是比父 Recordset 大),却只需要访问部分子子集,那么,使用参数化命令会更有效。

non-parameterized command(非参数化命令)同时检索整个父和子 Recordsets,并将子集列追加到父,然后为每个父行指定相关子子集的引用。

parameterized command(参数化命令)检索整个父 Recordset,但在访问子集列时仅检索子集 Recordset。这种检索策略的差别可以有益的性能好处。

例如,可以指定如下:

"SHAPE {SELECT * FROM customer}
APPEND ({SELECT * FROM orders WHERE cust_id = ?}
RELATE cust_id TO PARAMETER 0)"
父和子表通常拥有列名 cust_id。child-command 有占位符(即“?”),受 RELATE 子句引用(即“...PARAMETER 0”)。关系在于显性标识的 customer 表 parent-column(即 cust_id)和隐性标识的 orders 表 child-column(即 cust_id)之间,由占位符和“PARAMETER 0”指定。

注意 PARAMETER 子句仅属于 Shape 命令语法。与 ADO Parameter 属性和 Parameters 集合均无关联。

在执行 Shape 命令时,发生如下情形:

执行 parent-command,并返回 customer 表的父 Recordset。


子集列被追加到父 Recordset。


在访问父行的子集列时,customer.cust_id 列的值将替换 orders.cust_id 的占位符,并执行 child-command。


orders 表(在此,orders.cust_id 列的值与 customer.cust_id 列的值相匹配)的所有行被检索。


对检索到的子行(即子 Recordset 的 chapter)的引用被放置在父 Recordset 当前行的子集列。


当访问另一个行的子集列时,重复步骤 3-5。
插入 Shape COMPUTE 命令

现在将参数化 Shape 命令的参数化命令嵌入任意嵌套数量的形状 COMPUTE 命令中是有效的。例如:

SHAPE {select au_lname, state from authors} APPEND
((SHAPE
(SHAPE
{select * from authors where state = ?} rs
COMPUTE rs, ANY(rs.state) state, ANY(rs.au_lname) au_lname
BY au_id) rs2
COMPUTE rs2, ANY(rs2.state) BY au_lname)
RELATE state TO PARAMETER 0)

Shape Compute 命令


Shape COMPUTE 命令生成父 Recordset(其列由对子 Recordset 的引用组成)、可选的列(其内容是对子 Recordset 或以前成形的 Recordset 执行合计函数的结果)和在可选的 BY 子句中开列出的任何子 Recordset 的列。

语法

"SHAPE {child-command} [AS] child-alias

COMPUTE child-alias [ ,aggregate-command-field-list]

[BY grp-field-list]"

组成说明

该命令的组成是:

child-command 如下之一。

在尖括号(“{}”)中的查询命令,返回 Recordset 对象。命令发布给基本数据提供者,其语法取决于该提供者的要求。虽然 ADO 并不要求使用任何指定的查询语言,但通常是使用结构化查询语言 (SQL)。


以前成形的 Recordset 的名称。


另一个形状(Shape)命令。


TABLE 关键字,后跟表的名称。
child-alias 别名,用于引用由 child-command 返回的 Recordset。在 COMPUTE 子句的列的列表中需要 child-alias,用于定义父和子 Recordset 对象的关系。

aggregate-command-field-list 列表,定义在生成的父中的列,含有对子 Recordset 执行合计函数所产生的值。

grp-field-list 在父和子 Recordset 对象中的列的列表,指定在子中的行如何分组。

对在 grp-field-list 中的每个列,在父和子 Recordset 对象中有对应的列。对父 Recordset 的每个行,grp-field-list 列有唯一的值,并且由父行引用的子 Recordset 由子行(其 grp-field-list 列含有与父行相同的值)单独组成。

如果 COMPUTE 子句包含合计函数,但没有 BY 子句,那么,只有一个父行含有整个子 Recordset 的合计值。如果有 BY 子句,那么,有多个父行均分别含有引用和子 Recordset 的合计值。

操作

child-command 被发布给提供者,并返回子 Recordset。

COMPUTE 子句指定父 Recordset 的列,该 Recordset 可以是对子 Recordset 的引用、一个或多个合计、计算表达式或新列。如果有 BY 子句,那么,它定义的列同时被追加到父 Recordset 中。BY 子句指定子 Recordset 的行分组的方式。

例如,假定有一个人口统计表,包括 State、City 和 Population 字段(人口数字单独说明)。

State City Population
WA Seattle 700,000
OR Medford 200,000
OR Portland 600,000
CA Los Angeles 900,000
CA San Diego 400,000
WA Tacoma 500,000
OR Corvallis 300,000


现在,发出该 Shape 命令:

rst.Open "SHAPE {select * from demographics} AS rs
COMPUTE SUM(rs.population), rs
BY state",
connection
该命令打开具有两个层次的成形 Recordset。父层是生成的 Recordset,有合计列 (SUM(rs.population))、引用子 Recordset (rs) 的列和分组 Recordset (州)的列。子层是由查询命令 (select * from demographics) 返回的 Recordset。

子 Recordset 具体行将由 State 分组,但不按照特定的顺序。即分组将不采用字母或数字顺序。

现在,您可以定位打开的父 Recordset,并访问具体的子 Recordset 对象。请参阅访问分级 Recordset 中的行。

所得到的父和子具体的 Recordsets

SUM (rs.Population) rs State
1,300,000 Reference to child1 CA
1,200,000 Reference to child2 WA
1,100,000 Reference to child3 OR


子 1

State City Population
CA Los Angeles 900,000
CA San Diego 400,000


子 2

State City Population
WA Seattle 700,000
WA Tacoma 500,000


子 3

State City Population
OR Medford 200,000
OR Portland 600,000
OR Corvallis 300,000


将本文收藏到QQ书签与更多好友分享
[打 印]
[] [返回上一页] [收 藏]
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
精彩推荐
热门文章
· 注册码大全二
· 注册码大全四
· 注册码大全一
· 要10G免费网络硬盘的请进..
· 通过google 赶快来赚美金..
· 注册码大全十
· 头像-qq头像(qq新头像)4..
· 让你轻松架设FTP服务器1..
· 注册码大全三
· 梦幻背景图片7
· 卡通动物图片6
· 网页制作素材-按钮素材2..
· 让你轻松架设FTP服务器5..
· 风景图片8
· 注册码大全九
· 让你轻松架设FTP服务器2..
关注此文读者还看过
· 国内LOGO欣赏第二十六集..
· 免费全能绑域名空间
· PS在线版fauxto为照片添..
· 用FrontPage 2000制作共..
· ASP.NET 页面对象模型
· 大中联合网众启动团购活..
· 为加速 PHP 程序而努力
· 提高ASP性能的最佳选择(..
· 调用SQL SERVER数据库存..
· Layer 图层的基本说明
· 在MSN机器人里看BLOG
· sql2000卸载了后重新安装..
· Photoshop实用技巧:利用..
· php 与 java(一)
· 网站策划
· 电脑端口基础知识1
相关文章
· ASE锁模式:AllPages DataP..
· 不能频繁执行DBCC SHRINKDA..
· 解析:Oracle 10g EM Datab..
· 技术:XHTML(可扩展HTML)..
· 怎样使用DataGrid控件
· 在DataGrids和DropDownList..
· Ajax实现DataGrid/DataList..
· ASP.NET中Datagrid常见错误..
· ASP.NET中实现DataGr..
· ASP.NET中实现DataGr..
· 在客戶端實現datagrid的選取..
· 如何给DataGrid添加自动增长..
· WebService传输DataSet的一..
· 在存储过程中使用use datab..
· 动态的管理ASP.NET DataGri..
· Data Shaping技术--访问分级..
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 人才招聘
网站合作、内容监督、商务咨询:QQ: 9576619
Copyright ? 2005--2008 中国建站之家版权所有
粤ICP备05092265号