Must know something of everything and everything of something!

asp调用视图和存储过程

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

asp调用视图存储过程51Testing软件测试网 VM.N.~"TL

H3BH:]y h@w0一、前言
m `+I2gHN5[0 asp (active server pages) 是服务器端的脚本编写环境,它由微软公司的iis3.0以
0_r ~_{!L!P0上版本支持。它可用来创建动态 web 页或生成功能强大的 web应用程序。asp页是包括 html
WHXWng1I.p.{0标记、文本和脚本命令的文件。asp页可调用activex组件来执行任务,例如连接到数据库或进51Testing软件测试网5G G)f,hv?K'AF
行商务计算。通过asp,可为您的web页添加交互内容或用html页构成整个web应用程序,这些51Testing软件测试网U#[Wr@N&pH
  二、asp模型
$p(],C.[wS1k O0 如图1所示,浏览器从web服务器上请求 .asp文件时,asp 脚本开始运行。然后web
4|4J7hG'IH0服务器调用asp,asp全面读取请求的文件,执行所有脚本命令,并将web页传送给浏览器。
)D`b7dj,^fUcOW4x0 asp提供了一个在html页中使用现有脚本语言如 microsoft vbscrīpt 和 microsoft
6dL}6rF2L0 asp提供内建对象,这些对象使用户更容易收集通过浏览器请求发送的信息、响应浏51Testing软件测试网a7Ig fM
览器以及存储用户信息。包括application、request、response、server、session 和
v\#F.N%FI%a"K&b0objectcontext 对象。其中最为常用的为request、response 和server三个对象,它们分别用51Testing软件测试网:h5F5^(kG
于从浏览器请求信息、向浏览器发送信息和访问服务器上对象的属性和方法。
4t"^.y'^Jj-nb0  三、ado
}kt }.?0 asp和后台数据库连接使用微软的ado(activex data objects),ado是一项容易使用
8S:f-k.qhUt_Z0并且可扩展的将数据库访问添加到web页的技术。可以使用ado去编写紧凑简明的脚本以便连51Testing软件测试网,xZ$Ao0dZ XGL
接到open database connectivity(odbc)兼容的数据库和 ole db兼容的数据源。
2niq3X&H0 ado包含7个内置对象,它们分别为connection、command、recordset、fields、51Testing软件测试网3U*XpNr-Xv
error、parameters和properties。通过这些对象,asp可以完成对后台数据库的所有操作。
-KGT8A~j(i0  四、asp调用视图和存储过程51Testing软件测试网2bOr"nNs9sC
 在一般的mis应用中,会有大量的报表,此时我们可以在后台数据库编写相应的视图
I1U q7zc0或存储过程,用asp通过ado调用以完成报表工作。下面用一个例子说明相应的操作过程。51Testing软件测试网1N5Wv eh5wG$G
  1.创建 odbc dsn 文件51Testing软件测试网&X @8E8[^r_)k
 在创建数据库脚本之前,必须提供一条使ado定位、标识和与数据库通讯的途径。数
,g5B!a5IbUA0据库驱动程序使用data source name (dsn) 定位和标识特定的odbc兼容数据库,将信息从
3wa:O@@8mu0  2. 调用数据库视图
cD}8`c(HT7TD0 访问数据库信息的第一步是和数据库源建立连接。ado提供connection对象,可以使
)[D:Gs'W'd0  <%51Testing软件测试网 ti9C Vq9NxP
  set dataconn = server.createobject("adodb.connection") "建立连接对象
!iojF*[bL0  dataconn.open "dsn=sinotrans;server=app_server;uid=sa;pwd=;app=microsoft (r)51Testing软件测试网1m}7iT qChe
developer studio;wsid=app_server;regional=yes"51Testing软件测试网 | {NIz?
  set cmdtemp = server.createobject("adodb.command") "建立命令对象
BkyUie"hIca0  set rst= server.createobject("adodb.recordset") "建立记录集对象
:l!_GJL2Nc4r*s:m0  cmdtemp.commandtext = "customers "
0T? P@T(z,p2K0  cmdtemp.commandtype = 251Testing软件测试网U_\8|0mp n
  set cmdtemp.activeconnection = dataconn51Testing软件测试网0y)U|v)g

%YCF4B?!f4|{,]0  rst.open cmdtemp, , 1, 3 "生成查询结果   %>
ZRo8t#[M,W\0 此时,customers为视图,从视图中查询数据与从基表中查询数据的方法是相同的。51Testing软件测试网ZTiId_/R@t~
  3.调用数据库存储过程
3}9ep,CB7H&fE0  <%51Testing软件测试网5gLq8I M!k Tms
  set dataconn = server.createobject("adodb.connection") "建立连接对象
+DK v$e(WYF0  dataconn.open "dsn=sinotrans;server=app_server;uid=sa;pwd=;app=microsoft (r)51Testing软件测试网BgF0jJC.x,[f
  set cmdtemp = server.createobject("adodb.command") "建立命令对象
f+?7F8WT;V {-XDD0  set rst = server.createobject("adodb.recordset") "建立记录集对象
"aFr O)Z0  cmdtemp.commandtext = "dbo.pd_test" "存储过程名称
zU"mHI+Ks0  cmdtemp.commandtype = 4 "命令类别为4,表示为存储过程
f[ L4{)x:wf0  set cmdtemp.activeconnection = dataconn51Testing软件测试网ee8vA|I

9sT[pB1D5n0}F0  set tmpparam = cmdtemp.createparameter("return value", 3, 4, 4)
ioh'uq\0  cmdtemp.parameters.append tmpparam
/c0Ql G.tf)R7]&mO0  set tmpparam = cmdtemp.createparameter("@begindate", 135, 1, 16, riqi)51Testing软件测试网lu7k R({,h_r[
  "创建输入参数对象51Testing软件测试网2c3Tj3eK"eXl?P/r
  cmdtemp.parameters.append tmpparam
5R G/_x b-c0  rst.open cmdtemp, , 1, 3 "生成查询结果   %>51Testing软件测试网\[~|?
 这里调用的存储过程为pd_test,这种是ado中提供的标准方法,但存在一个问题,
EmX&{t HUf0就是当在存储过程中有两个以上的select语句,但从逻辑上又不可能同时执行的时候,ado会51Testing软件测试网H-` ut Q
提示你存储过程中select语句太多,解决方法是直接用ado的connection对象的execute方法直
#L#j"hd2V0  <%
:C5ZV#}+C9B |0  set dataconn = server.createobject("adodb.connection") "建立连接对象
Q{]4B` uvl0  dataconn.open "dsn=sinotrans;server=app_server;uid=sa;pwd=;app=microsoft (r)51Testing软件测试网;\4GDcN4k
  ss = "execute dbo.pd_test " & """ & riqi1 & """

/H e_t'mk,D1PI,s`051Testing软件测试网X jN\*N

  set rs = dataconn.execute(ss)   %>
e"Wuy;B4h!C0 有关asp和ado使用的详细信息,请参阅 microsoft activex data objects (ado) 和51Testing软件测试网`7H#p&V7MyNM E
active server pages(asp)的详细参考。
-S4S4Kl%wf0  五、结束语51Testing软件测试网'l@7k4^:cF
 在b/s结构的开发中,我们可以把一些商业规则或复杂查询用存储过程在dbms中编写
]+`p r g d G0,然后用asp中的ado对象调用,完成原来c/s结构中的传统功能。51Testing软件测试网 zs vA(zX5b


TAG: ASP 视图 存储过程 Other

 

评分:0

我来说两句

日历

« 2024-04-29  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

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

RSS订阅

Open Toolbar