柔情似水 发表于 2015-1-16 22:44:26

ASP网页编程之Data Shaping手艺--Shape Append 命令

因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。还无法完全实现一些企业级的功能:完全的集群、负载均横。ShapeAPPEND命令将子Recordset分派给父Recordset中Field工具的Value属性。

语法

SHAPE{parent-command}[parent-alias]

APPEND({child-command}child-alias

RELATEparent-columnTOchild-column...)[chapter-alias]...

构成申明

该命令的构成部分为:

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

在尖括号(“{}”)中的查询命令,前往Recordset工具。命令公布给基础数据供应者,其语法取决于该供应者的请求。固然ADO其实不请求利用任何指定的查询言语,但一般是利用布局化查询言语(SQL)。圆括号(“()”)是必须的关头字,它们将子集列追加到援用由查询命令前往的Recordset的父。


之前成形的Recordset的称号。


另外一个Shape命令。


TABLE关头字,后跟表的称号。
parent-column由parent-command前往的Recordset中的列。

child-column由child-command前往的Recordset中的列。

...“parent-columnTOchild-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和OrdersRecordsets能够同时具有customerID字段。

数据构形将子集列追加到父Recordset。子集列中的值是对子Recordset中列的援用,子Recordset满意RELATE子句。即在给定父行中的parent-column与在子集子的一切行中的child-column具有不异的值。

当您会见在子集列中的援用时,ADO将主动检索由援用暗示的Recordset。注重只管已检索了全体子Recordset,但子集(chapter)仅暗示行的子集。

假如追加的列没有chapter-alias,则会主动天生其称号。列的Field工具将被追加到Recordset工具的Fields汇合,其数据范例将是adChapter。

有关定位分级Recordset的具体信息,请参阅会见分级Recordset中的行。

参数化命令

假如您正在处置年夜的子Recordset(特别是比父Recordset年夜),却只必要会见部份子子集,那末,利用参数化命令会更无效。

non-parameterizedcommand(非参数化命令)同时检索全部父和子Recordsets,并将子集列追加到父,然后为每一个父行指定相干子子集的援用。

parameterizedcommand(参数化命令)检索全部父Recordset,但在会见子集列时仅检索子集Recordset。这类检索战略的不同能够无益的功能优点。

比方,能够指定以下:

"SHAPE{SELECT*FROMcustomer}
APPEND({SELECT*FROMordersWHEREcust_id=?}
RELATEcust_idTOPARAMETER0)"
父和子表一般具有列名cust_id。child-command有占位符(即“?”),受RELATE子句援用(即“...PARAMETER0”)。干系在于显性标识的customer表parent-column(即cust_id)和隐性标识的orders表child-column(即cust_id)之间,由占位符和“PARAMETER0”指定。

注重PARAMETER子句仅属于Shape命令语法。与ADOParameter属性和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。
拔出ShapeCOMPUTE命令

如今将参数化Shape命令的参数化命令嵌进恣意嵌套数目的外形COMPUTE命令中是无效的。比方:

SHAPE{selectau_lname,statefromauthors}APPEND
((SHAPE
(SHAPE
{select*fromauthorswherestate=?}rs
COMPUTErs,ANY(rs.state)state,ANY(rs.au_lname)au_lname
BYau_id)rs2
COMPUTErs2,ANY(rs2.state)BYau_lname)
RELATEstateTOPARAMETER0)

ShapeCompute命令


ShapeCOMPUTE命令天生父Recordset(其列由对子Recordset的援用构成)、可选的列(其内容是对子Recordset或之前成形的Recordset实行算计函数的了局)和在可选的BY子句中开列出的任何子Recordset的列。

语法

"SHAPE{child-command}child-alias

COMPUTEchild-alias[,aggregate-command-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子句指定子</p>ASP最大的缺点在于网络的安全性和可靠性,企业将经营数据放在开放的平台上,最大的担忧就是如何保证这些数据不被其他人破坏。

飘灵儿 发表于 2015-1-19 21:55:05

先学习用frontpage熟悉html编辑然后学习asp和vbscript建议买书进行系统学习

冷月葬花魂 发表于 2015-1-28 12:52:28

跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组

兰色精灵 发表于 2015-2-5 21:34:00

我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。

深爱那片海 发表于 2015-3-4 00:28:47

下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。

海妖 发表于 2015-3-11 14:56:24

ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题:

不帅 发表于 2015-3-19 00:31:55

多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。

柔情似水 发表于 2015-3-26 23:09:48

交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。
页: [1]
查看完整版本: ASP网页编程之Data Shaping手艺--Shape Append 命令