帝国软件
  设为首页 加入收藏 关于我们
 
解密帝国网站管理系统
栏 目:
 
您的位置:首页 > 技术文档 > ASP编程
Data Shaping技术--访问分级 Recordset 中的行
作者:chenyangasp 发布时间:2005-03-12 来源:Chinaasp论坛
以下范例说明了访问分级 Recordset 中的行的所需步骤:

authors 和 titleauthors 表中的 Recordset 对象通过 author ID 进行关联。


外循环显示每个作者的姓名、州/省别和身份。


每行所追加的 Recordset 都从 Fields 集合进行检索并分配给 rstTitleAuthor。


内循环显示追加的 Recordset 中每行的四个字段。
(StayInSync 属性是为了说明而设置为 FALSE 的,以便您可以在每次外循环中显性地看见子集更改。但是,如果在步骤 3 中的赋值被移动到步骤 2 第一行之前,范例将会更有效,所以赋值只执行一次。然后将 StayInSync 属性设为 TRUE,这样无论 rst 何时移动到新行,rstTitleAuthor 都将隐性和自动地更改为相应的子集。)

范例

Sub datashape()
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim rstTitleAuthor As New ADODB.Recordset

cnn.Provider = "MSDataShape"
cnn.Open "Data Provider=MSDASQL;" & _
"DSN=vfox;uid=sa;pwd=vfox;database=pubs”
‘步骤 1
rst.StayInSync = FALSE
rst.Open "SHAPE {select * from authors}
APPEND ({select * from titleauthor}
RELATE au_id TO au_id) AS chapTitleAuthor",
cnn
‘步骤 2
While Not rst.EOF
Debug.Print rst("au_fname"), rst("au_lname"),
rst("state"), rst("au_id")
‘步骤 3
Set rstTitleAuthor = rst("chapTitleAuthor").Value
‘步骤 4
While Not rstTitleAuthor.EOF
Debug.Print rstTitleAuthor(0), rstTitleAuthor(1),
rstTitleAuthor(2), rstTitleAuthor(3)
rstTitleAuthor.MoveNext
Wend
rst.MoveNext
Wend
End Sub

形状语法格式


以下是创建 Shape 命令的规范语法。

必需的语法项为尖括号 (“<>”) 界定的文本字符串。


可选项由方括号 (“[ ]”) 界定。


任选其一项用竖线 (“|”) 隔开。


重复的可选项用省略号 (“...”) 表示。


Alpha 表示字母字符串。


Digit 表示数字字符串。


Unicode-digit 表示由 unicode 数字组成的字符串。
所有其他项目均为文字。

项目 定义
<shape-command>
SHAPE [<table-exp> ][[AS] <alias>]][<shape-action>]

<table-exp>
{<native-sql-statement>} |(<shape-command>) |
TABLE <quoted-name> |
<quoted-name>

<shape-action>
APPEND <aliased-field-list> | COMPUTE <aliased-field-list>
[BY <field-list> ][[AS] <alias>]]

<aliased-field-list>
<aliased-field> [, <aliased-field...]

<aliased-field>
<field-exp> [[AS] <alias>]

<field-exp>
(<relation-exp>) |<calculated-exp>

<relation_exp>
<table-exp> [[AS] <alias>] RELATE <relation-cond-list>

<relation-cond-list>
<relation-cond> [, <relation-cond>...]

<relation-cond>
<field-name> TO <child-ref>

<child-ref>
<field-name> | PARAMETER <param-ref>

<param-ref>
<number>

<field-list>
<field-name [, <field-name>]

<calculated-exp>
SUM(<qualified-field-name>) |AVG(<qualified-field-name>) |
MIN(<qualified-field-name>) |
MAX(<qualified-field-name>) |
COUNT(<alias> | <qualified-field-name>) |
STDEV(<qualified-field-name>) |
ANY(<qualified-field-name>) |
CALC(<expresion>)

<qualified-field-name>
<alias>.[<alias>...]<field-name>

<alias>
<quoted-name>

<field-name>
<quoted-name>

<quoted-name>
"<string>" | '<string>' |
[<string>] |
<name>

<name>
alpha [ alpha | digit | _ | # ...]

<number>
digit [digit...]

<string>
unicode-char [unicode-char...]

<expression>
Visual Basic for Applications 表达式,其操作数是相同行中其他非 CALC 列。

  
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·不用SQL语句查询DataTable中的数  (2005-03-12)

   栏目导行
  PHP编程
  ASP编程
  ASP.NET编程
  JAVA编程
   站点最新
·致合作伙伴的欢迎信
·媒体报道
·帝国软件合作伙伴计划协议
·DiscuzX2.5会员整合通行证发布
·帝国CMS 7.0版本功能建议收集
·帝国网站管理系统2012年授权购买说
·PHPWind8.7会员整合通行证发布
·[官方插件]帝国CMS-访问统计插件
·[官方插件]帝国CMS-sitemap插件
·[官方插件]帝国CMS内容页评论AJAX分
   类别最新
·在ASP中使用数据库
·使用ASP脚本技术
·通过启动脚本来感受ASP的力量
·学习使用ASP对象和组件
·解析asp的脚本语言
·初看ASP-针对初学者
·ASP开发10条经验总结
·ASP之对象总结
·ASP与数据库应用(给初学者)
·关于学习ASP和编程的28个观点
 
关于帝国 | 广告服务 | 联系我们 | 程序开发 | 网站地图 | 留言板 帝国网站管理系统