安大互联
财经热点 > Asp编程 > 数据定型在asp中的应用
数据定型在asp中的应用
浏览次数:【631】  发布日期:2009-8-13 12:09:22    文章分类:Asp编程   
专题:】 【
 

数据定型是定义一个定型记录集的过程,定性记录集我们可以认为是一个条理记录集,条理记录集分为三种:

关系条理,参数化条理,分组条理。

我认为这种技术的最大亮点是:没有数据冗余,界面显示清晰简单,对于多层数据操作更便利

要向应用这个技术,需要将数据驱动连接字符串中的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====

  总结:上面的案例非常肤浅,主要是用于入门之用,实际上这些条理可以非常复杂,我们这里一般用不到那么复杂的。如果需要,可以查询一些资料,可是我尝试编写复杂的条理,可是没有成功,遇到了一点以前没有见到又木有办法解决的问题。

手机扫码浏览该文章
 ● 相关资讯专题
  • 网络建设业务咨询

   TEl:13626712526