数据定型是定义一个定型记录集的过程,定性记录集我们可以认为是一个条理记录集,条理记录集分为三种:
关系条理,参数化条理,分组条理。
我认为这种技术的最大亮点是:没有数据冗余,界面显示清晰简单,对于多层数据操作更便利
要向应用这个技术,需要将数据驱动连接字符串中的Provider设置为:MSDataShape
具体应用需要Shape命令:并有两种不同 的shape语句:
一、shape{sql1} append({sql2} as ?? relate a to b)
他的工作方式就是:首先查询sql1,然后再根据 relate a to b指定的条件查询sql2,然后在sql1检索结果的后面分别添加一个字段,分别用于保存相应的sql2查询结果的记录集,说白了sql1查询结果为父记录集,sql2查询结果为子记录集。
这种方式还分为两种:关系条理和参数化条理
关系条理例子:Shape{select a,b from t1} append({select m,n from t2} relate a=m)
参数化条理的案例:shape{select a,b from t1} append({select m,n from t2 where m=?} relate a to Parameter 0)
可见,在参数化条理中,有一个where m=? 和一个parameter 0
这个的功能起始和上一个关系条理一样,只是工作原理不同而已,这种情景下,数据不是一次栽入,只检索父记录集上的数据,子记录集只有在你显示的打开基于章节字段的一个记录集时,才检索。
例子:
<%
Set Db = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
mmm="driver={SQL Server};server=192.1.1.21;uid=sa;pwd=myself;database=gwjp2"
db.Provider="MSDataShape"
db.Open mmm
rs.Open "shape{select name,id from tgw} append({select name,gwid from tren} as liu relate id to gwid) AS liu",db,3,1
Response.Write rs.RecordCount
Response.Write "<hr>"
do while not rs.EOF
Response.Write "岗位名:" & rs(0)
set qq=rs("liu").value
Response.write "<br> 记录数 " & qq.recordcount & ":<br>"
do while not qq.eof
for i=0 to qq.fields.count-1
Response.Write qq(i) & " | "
next
Response.Write "<br>"
qq.movenext
loop
Response.Write "<br>"
Response.Write "<hr>"
rs.MoveNext
loop
%>
执行结果为:
42
--------------------------------------------------------------------------------
岗位名:网络系统管理B
记录数 0:
--------------------------------------------------------------------------------
岗位名:应用软件开发J
记录数 2:
王林松 | 9 |
杨龙 | 9 |
--------------------------------------------------------------------------------
岗位名:股市分析
记录数 0:
--------------------------------------------------------------------------------
岗位名:复印工
记录数 4:
吴荣萍 | 68 |
李丽杰 | 68 |
刘秀芝 | 68 |
吕海辉 | 68 |
--------------------------------------------------------------------------------
岗位名:巡守员B
记录数 1:
李飞 | 69 |
--------------------------------------------------------------------------------
岗位名:售后服务站主任H
记录数 1:
关宇明 | 111 |
--------------------------------------------------------------------------------
岗位名:现场技术诊断D
记录数 1:
李新珠 | 121 |
--------------------------------------------------------------------------------
岗位名:现场技术诊断G
记录数 3:
张洪渊 | 123 |
郑东 | 123 |
宫平 | 123 |
--------------------------------------------------------------------------------
岗位名:执法监察B
记录数 0:
--------------------------------------------------------------------------------
岗位名:清扫
记录数 3:
张秀英 | 152 |
孙艳梅 | 152 |
张敬华 | 152 |
--------------------------------------------------------------------------------
岗位名:质量体系
记录数 1:
刘艳宇 | 160 |
--------------------------------------------------------------------------------
岗位名:外协件检验B
记录数 2:
何国伟 | 206 |
马自立 | 206 |
--------------------------------------------------------------------------------
岗位名:机电配件检验C
记录数 2:
龚建国 | 207 |
王春霞 | 207 |
--------------------------------------------------------------------------------
岗位名:调研秘书D
记录数 1:
石继民 | 216 |
--------------------------------------------------------------------------------
岗位名:政策研究B
记录数 0:
--------------------------------------------------------------------------------
岗位名:打字复印C
记录数 1:
刘毓禄 | 280 |
--------------------------------------------------------------------------------
岗位名:库房管理
记录数 4:
姜丽 | 485 |
耿莉梅 | 485 |
徐丽 | 485 |
许兰凤 | 485 |
--------------------------------------------------------------------------------
岗位名:财务分析
记录数 0:
--------------------------------------------------------------------------------
岗位名:绿化技术管理A
记录数 1:
任家蔚 | 560 |
--------------------------------------------------------------------------------
岗位名:绿化技术管理B
记录数 3:
曹丰明 | 592 |
刘万春 | 592 |
王安 | 592 |
--------------------------------------------------------------------------------
岗位名:总值班调度D
记录数 3:
刘福利 | 627 |
周志敏 | 627 |
张同顺 | 627 |
--------------------------------------------------------------------------------
岗位名:生产调度L
记录数 2:
匡丽萍 | 628 |
吴明贵 | 628 |
--------------------------------------------------------------------------------
岗位名:环境检测化验A
记录数 1:
侯志伟 | 651 |
--------------------------------------------------------------------------------
岗位名:环境检测化验B
记录数 2:
韩西春 | 652 |
韩玉梅 | 652 |
--------------------------------------------------------------------------------
岗位名:资产管理A
记录数 2:
阎志硕 | 665 |
王薇 | 665 |
--------------------------------------------------------------------------------
岗位名:能源外购与外联
记录数 1:
马大伟 | 667 |
--------------------------------------------------------------------------------
岗位名:能源监察与仲裁
记录数 5:
綦学义 | 682 |
孙庆云 | 682 |
刘卫兵 | 682 |
张启恩 | 682 |
王英丽 | 682 |
--------------------------------------------------------------------------------
岗位名:东门警卫F-I
记录数 7:
徐兆军 | 747 |
时勇 | 747 |
王宏伟 | 747 |
白文 | 747 |
武勇 | 747 |
高德富 | 747 |
杨泉 | 747 |
--------------------------------------------------------------------------------
岗位名:南门警卫G-I
记录数 5:
王志辉 | 749 |
张庆 | 749 |
董伟 | 749 |
黄继东 | 749 |
竹学锋 | 749 |
--------------------------------------------------------------------------------
岗位名:物资门警卫I
记录数 1:
万鹏剑 | 751 |
--------------------------------------------------------------------------------
岗位名:西门警卫H,I
记录数 2:
张贵平 | 753 |
贺文利 | 753 |
--------------------------------------------------------------------------------
岗位名:地变看车点警卫B
记录数 1:
季岩 | 757 |
--------------------------------------------------------------------------------
岗位名:南外门警卫
记录数 3:
沈国志 | 759 |
王晶辉 | 759 |
韩立 | 759 |
--------------------------------------------------------------------------------
岗位名:专用线门警卫B-D
记录数 7:
高斌 | 761 |
杨国桥 | 761 |
韩文生 | 761 |
苗文泉 | 761 |
高明 | 761 |
赵锐 | 761 |
徐本春 | 761 |
--------------------------------------------------------------------------------
岗位名:后勤服务B
记录数 3:
王秀波 | 763 |
徐悦 | 763 |
姜莉 | 763 |
--------------------------------------------------------------------------------
岗位名:经营预算计划
记录数 0:
--------------------------------------------------------------------------------
岗位名:资产经营管理
记录数 1:
于国春 | 805 |
--------------------------------------------------------------------------------
岗位名:金相检验与分析
记录数 2:
李春生 | 806 |
杨影 | 806 |
--------------------------------------------------------------------------------
岗位名:巡守员
记录数 1:
吴晓华 | 807 |
--------------------------------------------------------------------------------
岗位名:管库
记录数 3:
薛玉梅 | 808 |
白茹新 | 808 |
轩辕云龙 | 808 |
--------------------------------------------------------------------------------
岗位名:北京项目部业务主办A
记录数 2:
刘亚华 | 809 |
关喜元 | 809 |
--------------------------------------------------------------------------------
岗位名:晒图工C-J
记录数 3:
赵玉珠 | 810 |
赵小丽 | 810 |
付琼 | 810 |
二、shape{sql1} as a1 compute a1 by groupfieldlist
他的工作方式是:将sql1的查询结果根据groupfieldlist进行分组,每组单独成立一个字记录集。父记录集的第壹个字段存放对应的子记录集的指针,父记录集的其它字段存储相应的groupfieldlist的值。
例子如下:
<%
Set Db = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
mmm="driver={SQL Server};server=192.1.1.21;uid=sa;pwd=myself;database=gwjp2"
db.Provider="MSDataShape"
db.Open mmm
rs.Open "shape{select dwname, gwlevel from tzl order by dwname } as ddd compute ddd by dwname,gwlevel",db,3,1
Response.Write rs.RecordCount
Response.Write "<hr>"
do while not rs.EOF
tt=""
for i=1 to rs.Fields.count-1
tt= tt & " " & rs(i)
next
set qq=rs(0).Value
response.write "<font color=ff0000>" & tt & " --------- " & qq.recordcount & "<br></font>"
do while not qq.eof
for i=0 to qq.fields.count-1
Response.Write qq(i) & "===="
next
Response.Write "<br>"
qq.movenext
loop
Response.Write "<hr>"
rs.MoveNext
loop
%>
执行结果为:
24
--------------------------------------------------------------------------------
xx公司 生产制造部 13 --------- 2
xx公司 生产制造部====13====
xx公司 生产制造部====13====
--------------------------------------------------------------------------------
xx公司 生产制造部 35 --------- 2
xx公司 生产制造部====35====
xx公司 生产制造部====35====
--------------------------------------------------------------------------------
xx公司 生产制造部 39 --------- 2
xx公司 生产制造部====39====
xx公司 生产制造部====39====
--------------------------------------------------------------------------------
xx公司 市场一部 9 --------- 1
xx公司 市场一部====9====
--------------------------------------------------------------------------------
xx公司 市场一部 14 --------- 1
xx公司 市场一部====14====
--------------------------------------------------------------------------------
xx公司 市场一部 37 --------- 1
xx公司 市场一部====37====
--------------------------------------------------------------------------------
xx公司 市场一部 40 --------- 1
xx公司 市场一部====40====
--------------------------------------------------------------------------------
xx公司 市场一部 45 --------- 1
xx公司 市场一部====45====
--------------------------------------------------------------------------------
xx公司 资产运营部 9 --------- 1
xx公司 资产运营部====9====
--------------------------------------------------------------------------------
xx公司 资产运营部 39 --------- 2
xx公司 资产运营部====39====
xx公司 资产运营部====39====
--------------------------------------------------------------------------------
xx公司 资产运营部 41 --------- 1
xx公司 资产运营部====41====
--------------------------------------------------------------------------------
xx公司 综合保障部 9 --------- 1
xx公司 综合保障部====9====
--------------------------------------------------------------------------------
xx公司 综合保障部 14 --------- 4
xx公司 综合保障部====14====
xx公司 综合保障部====14====
xx公司 综合保障部====14====
xx公司 综合保障部====14====
--------------------------------------------------------------------------------
xx公司 综合保障部 15 --------- 1
xx公司 综合保障部====15====
--------------------------------------------------------------------------------
xx公司 综合保障部 17 --------- 6
xx公司 综合保障部====17====
xx公司 综合保障部====17====
xx公司 综合保障部====17====
xx公司 综合保障部====17====
xx公司 综合保障部====17====
xx公司 综合保障部====17====
--------------------------------------------------------------------------------
xx公司 综合保障部 18 --------- 3
xx公司 综合保障部====18====
xx公司 综合保障部====18====
xx公司 综合保障部====18====
--------------------------------------------------------------------------------
品质保证部 计量处 15 --------- 1
品质保证部 计量处====15====
--------------------------------------------------------------------------------
品质保证部 质量管理处 26 --------- 2
品质保证部 质量管理处====26====
品质保证部 质量管理处====26====
--------------------------------------------------------------------------------
品质保证部 质量管理处 41 --------- 1
品质保证部 质量管理处====41====
--------------------------------------------------------------------------------
企业管理部 信息中心 41 --------- 1
企业管理部 信息中心====41====
--------------------------------------------------------------------------------
研发中心 城轨客车开发部 9 --------- 1
研发中心 城轨客车开发部====9====
--------------------------------------------------------------------------------
研发中心 档案馆 9 --------- 1
研发中心 档案馆====9====
--------------------------------------------------------------------------------
研发中心 档案馆 16 --------- 1
研发中心 档案馆====16====
--------------------------------------------------------------------------------
研发中心 档案馆 18 --------- 1
研发中心 档案馆====18====
总结:上面的案例非常肤浅,主要是用于入门之用,实际上这些条理可以非常复杂,我们这里一般用不到那么复杂的。如果需要,可以查询一些资料,可是我尝试编写复杂的条理,可是没有成功,遇到了一点以前没有见到又木有办法解决的问题。