Must know something of everything and everything of something!

asp调用视图和存储过程

上一篇 / 下一篇  2007-05-13 11:13:17 / 个人分类:Other

asp调用视图存储过程51Testing软件测试网!Z:jO dn/@$~4r

K'GeXmG*r4C/_0一、前言51Testing软件测试网 Sj\oi9D^
 asp (active server pages) 是服务器端的脚本编写环境,它由微软公司的iis3.0以
s4u5\*l-Q5P0上版本支持。它可用来创建动态 web 页或生成功能强大的 web应用程序。asp页是包括 html51Testing软件测试网f3[3Q{Ty-lD'Q
标记、文本和脚本命令的文件。asp页可调用activex组件来执行任务,例如连接到数据库或进51Testing软件测试网?m!L*TH:iH
行商务计算。通过asp,可为您的web页添加交互内容或用html页构成整个web应用程序,这些
3?qD5v_4e7~;]c0  二、asp模型
)wM@rsj)e.m*~0 如图1所示,浏览器从web服务器上请求 .asp文件时,asp 脚本开始运行。然后web
*ON,ALH:E+W_0服务器调用asp,asp全面读取请求的文件,执行所有脚本命令,并将web页传送给浏览器。51Testing软件测试网7R4g.t:qM6Y,@ ]h6v
 asp提供了一个在html页中使用现有脚本语言如 microsoft vbscrīpt 和 microsoft51Testing软件测试网x"Nl7p6i0@#z
 asp提供内建对象,这些对象使用户更容易收集通过浏览器请求发送的信息、响应浏
G@2Nl(i8{^ {'M'w0览器以及存储用户信息。包括application、request、response、server、session 和51Testing软件测试网-m'X s+H\4EC7W
objectcontext 对象。其中最为常用的为request、response 和server三个对象,它们分别用
'zCkU1Yq ?0于从浏览器请求信息、向浏览器发送信息和访问服务器上对象的属性和方法。
6vcp/qg3D0  三、ado51Testing软件测试网[uqBz2C.HZ
 asp和后台数据库连接使用微软的ado(activex data objects),ado是一项容易使用
Q9F6~5N }.b-]0并且可扩展的将数据库访问添加到web页的技术。可以使用ado去编写紧凑简明的脚本以便连
k)O_AD'N/hQI0接到open database connectivity(odbc)兼容的数据库和 ole db兼容的数据源。
8Jy?:[e(iW0 ado包含7个内置对象,它们分别为connection、command、recordset、fields、
,x {5r*G@D"e~9`0error、parameters和properties。通过这些对象,asp可以完成对后台数据库的所有操作。51Testing软件测试网6deejG7Yz.PP?
  四、asp调用视图和存储过程
Ppk,{Jb t@0 在一般的mis应用中,会有大量的报表,此时我们可以在后台数据库编写相应的视图
n? W m;P*m t'U0或存储过程,用asp通过ado调用以完成报表工作。下面用一个例子说明相应的操作过程。
$d9Y SK0q0  1.创建 odbc dsn 文件51Testing软件测试网t Lni/|5]8~$M5E
 在创建数据库脚本之前,必须提供一条使ado定位、标识和与数据库通讯的途径。数51Testing软件测试网H;dv D3F:u{]1X
据库驱动程序使用data source name (dsn) 定位和标识特定的odbc兼容数据库,将信息从51Testing软件测试网uy j3` H(Wo
  2. 调用数据库视图
4GQ!Is+d+^"{,R f1h0 访问数据库信息的第一步是和数据库源建立连接。ado提供connection对象,可以使
^6a O~o!T0  <%
Ah}i'gm#?)zPL0  set dataconn = server.createobject("adodb.connection") "建立连接对象
$FU CG k/P/N0  dataconn.open "dsn=sinotrans;server=app_server;uid=sa;pwd=;app=microsoft (r)51Testing软件测试网.wh6VI.vQ0M(e
developer studio;wsid=app_server;regional=yes"51Testing软件测试网@We1{`gC;H
  set cmdtemp = server.createobject("adodb.command") "建立命令对象51Testing软件测试网X5O h5c{g4~.@0~
  set rst= server.createobject("adodb.recordset") "建立记录集对象51Testing软件测试网N^V { x:R| p.^
  cmdtemp.commandtext = "customers "
x0{-m/Q,ptI0  cmdtemp.commandtype = 2
S4a{gjTzV0  set cmdtemp.activeconnection = dataconn51Testing软件测试网f F:w5sP

~Qaz+n F)l0  rst.open cmdtemp, , 1, 3 "生成查询结果   %>51Testing软件测试网5{ S'As&`e
 此时,customers为视图,从视图中查询数据与从基表中查询数据的方法是相同的。
u"Fnl-}0  3.调用数据库存储过程
*p|} bZ!H|e2m~zha0  <%
W/X;e@:z;Fy6b9A6n0  set dataconn = server.createobject("adodb.connection") "建立连接对象
9\+K3QK~RJ uhH1A0  dataconn.open "dsn=sinotrans;server=app_server;uid=sa;pwd=;app=microsoft (r)51Testing软件测试网]Yu!k nv]*m+?
  set cmdtemp = server.createobject("adodb.command") "建立命令对象
z-V/F Ct/\0  set rst = server.createobject("adodb.recordset") "建立记录集对象
6NY dN*g0  cmdtemp.commandtext = "dbo.pd_test" "存储过程名称51Testing软件测试网azY{`T"^
  cmdtemp.commandtype = 4 "命令类别为4,表示为存储过程51Testing软件测试网4o0B^"UQ8qY
  set cmdtemp.activeconnection = dataconn

x$qsx9a^a"Xq Q051Testing软件测试网)vK.`}Q5g$w'a

  set tmpparam = cmdtemp.createparameter("return value", 3, 4, 4)51Testing软件测试网u.m F.Q)_ z?.A:E
  cmdtemp.parameters.append tmpparam
0IT%q pZ3Lg,x9hq1}N c0  set tmpparam = cmdtemp.createparameter("@begindate", 135, 1, 16, riqi)
;aV@4p!LF+m'R0  "创建输入参数对象
$w}"rTO;X2tf0  cmdtemp.parameters.append tmpparam51Testing软件测试网"M"];bEy7ll W:\
  rst.open cmdtemp, , 1, 3 "生成查询结果   %>
u4B2U9nNz0 这里调用的存储过程为pd_test,这种是ado中提供的标准方法,但存在一个问题,51Testing软件测试网dk(AC k(n~
就是当在存储过程中有两个以上的select语句,但从逻辑上又不可能同时执行的时候,ado会51Testing软件测试网,i_&~gF0o"\,[ |
提示你存储过程中select语句太多,解决方法是直接用ado的connection对象的execute方法直
nk }-V8K9RZX*h0  <%51Testing软件测试网\]mO!pCMZwP,k
  set dataconn = server.createobject("adodb.connection") "建立连接对象51Testing软件测试网6e&b+o;UY m7X~s2]^nJ
  dataconn.open "dsn=sinotrans;server=app_server;uid=sa;pwd=;app=microsoft (r)
8D;Q$a4`m+Kh0  ss = "execute dbo.pd_test " & """ & riqi1 & """51Testing软件测试网-K5rlq9Pt_

51Testing软件测试网%BoIC }4F

  set rs = dataconn.execute(ss)   %>51Testing软件测试网&P+PLz$g&h+gVM
 有关asp和ado使用的详细信息,请参阅 microsoft activex data objects (ado) 和
1V4q/q{ x!W5v:J0active server pages(asp)的详细参考。51Testing软件测试网 c)t-q$M_d.h
  五、结束语51Testing软件测试网 z {,P[k%r+P|Z
 在b/s结构的开发中,我们可以把一些商业规则或复杂查询用存储过程在dbms中编写51Testing软件测试网u$|&P e$a` Gg
,然后用asp中的ado对象调用,完成原来c/s结构中的传统功能。

:N,Q.??9x Zozb0

TAG: ASP 视图 存储过程 Other

 

评分:0

我来说两句

日历

« 2024-05-02  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 76986
  • 日志数: 93
  • 建立时间: 2007-03-22
  • 更新时间: 2007-12-31

RSS订阅

Open Toolbar