最新IBM水货笔记本价格,详细点击进入

查看完整版本: ASP调用SQL Server视图和存储过程

风舞残阳 2008-4-2 17:54

ASP调用SQL Server视图和存储过程

[size=3][/size]一、前言
ASP(ActiveServerPages)是[wiki]服务器[/wiki]端的脚本编写[wiki]环境[/wiki],它由[wiki]微软[/wiki]公司的IIS3.0以上版本支持。它可用来创建动态Web页或生成功能强大的Web应用[wiki]程序[/wiki]。ASP页是包括HTML标记、文本和脚本命令的文件。ASP页可调用ActiveX组件来执行任务,例如连接到[wiki]数据库[/wiki]或进行商务计算。通过ASP,可为您的Web页添加交互内容或用HTML页构成整个Web应用程序,这些应用程序使用HTML页作为您的客户的界面。
二、ASP模型
[wiki]浏览器[/wiki]从Web服务器上请求.asp文件时,ASP脚本开始运行。然后Web服务器调用ASP,ASP全面读取请求的文件,执行所有脚本命令,并将Web页传送给浏览器。
ASP提供了一个在HTML页中使用现有[wiki]脚本语言[/wiki]如MicrosoftVBScript和MicrosoftJScript的框架。
ASP提供内建[wiki]对象[/wiki],这些对象使用户更容易收集通过浏览器请求发送的[wiki]信息[/wiki]、响应浏览器以及存储用户信息。包括Application、Request、Response、Server、Session和ObjectContext对象。其中最为常用的为Request、Response和Server三个对象,它们分别用于从浏览器请求信息、向浏览器发送信息和访问服务器上对象的属性和方法。
三、ADO
ASP和后台数据库连接使用微软的ADO(ActiveXDataObjects),ADO是一项容易使用并且可扩展的将数据库访问添加到Web页的[wiki]技术[/wiki]。可以使用ADO去编写紧凑简明的脚本以便连接到OpenDatabaseConnectivity(ODBC)兼容的数据库和OLEDB兼容的数据源。
ADO包含7个内置对象,它们分别为Connection、Command、RecordSet、Fields、Error、Parameters和Properties。通过这些对象,ASP可以完成对后台数据库的所有操作。
四、ASP调用视图和存储过程
在一般的MIS应用中,会有大量的报表,此时我们可以在后台数据库编写相应的视图或存储过程,用ASP通过ADO调用以完成报表工作。下面用一个例子说明相应的操作过程。
1.创建ODBCDSN文件
在创建数据库脚本之前,必须提供一条使ADO定位、标识和与数据库通讯的途径。数据库驱动程序使用DataSourceName(DSN)定位和标识特定的ODBC兼容数据库,将信息从Web应用程序传递给数据库。
2.调用数据库视图
访问数据库信息的第一步是和数据库源建立连接。ADO提供Connection对象,可以使用该对象建立和[wiki]管理[/wiki]应用程序和ODBC数据库之间的连接。

%26lt;%SetDataconn=Server.CreateObject("ADODB.Connection")'建立连接对象Dataconn.Open"DSN=SinoTrans;SERVER=APP_SERVER;UID=sa;PWD=;APP=Microsoft(R)DeveloperStudio;WSID=APP_SERVER;Regional=Yes"SetcmdTemp=Server.CreateObject("ADODB.Command")'建立命令对象Setrst=Server.CreateObject("ADODB.Recordset")'建立记录集对象cmdTemp.CommandText="Customers"cmdTemp.CommandType=2SetcmdTemp.ActiveConnection=DataConnrst.OpencmdTemp,,1,3'生成查询结果%%26gt;

此时,Customers为视图,从视图中查询数据与从基表中查询数据的方法是相同的。
3.调用数据库存储过程

%26lt;%SetDataconn=Server.CreateObject("ADODB.Connection")'建立连接对象Dataconn.Open"DSN=SinoTrans;SERVER=APP_SERVER;UID=sa;PWD=;APP=Microsoft(R)DeveloperStudio;WSID=APP_SERVER;Regional=Yes"SetcmdTemp=Server.CreateObject("ADODB.Command")'建立命令对象Setrst=Server.CreateObject("ADODB.Recordset")'建立记录集对象cmdTemp.CommandText="dbo.pd_test"'存储过程名称cmdTemp.CommandType=4'命令[wiki]类[/wiki]别为4,表示为存储过程SetcmdTemp.ActiveConnection=DataconnSettmpParam=cmdTemp.CreateParameter("ReturnValue",3,4,4)cmdTemp.Parameters.AppendtmpParamSettmpParam=cmdTemp.CreateParameter("@BeginDate",135,1,16,riqi)'创建输入参数对象cmdTemp.Parameters.AppendtmpParamrst.OpencmdTemp,,1,3'生成查询结果%%26gt;

这里调用的存储过程为pd_test,这种是ADO中提供的[wiki]标准[/wiki]方法,但存在一个问题,就是当在存储过程中有两个以上的SELECT语句,但从[wiki]逻辑[/wiki]上又不可能同时执行的时候,ADO会提示你存储过程中SELECT语句太多,解决方法是直接用ADO的CONNECTION对象的EXECUTE方法直接执行存储过程,如下:

%26lt;%SetDataconn=Server.CreateObject("ADODB.Connection")'建立连接对象Dataconn.Open"DSN=SinoTrans;SERVER=APP_SERVER;UID=sa;PWD=;APP=Microsoft(R)DeveloperStudio;WSID=APP_SERVER;Regional=Yes"ss="EXECUTEdbo.pd_test"%26"'"%26riqi1%26"'"Setrs=dataconn.Execute(ss)%%26gt;

有关ASP和ADO使用的详细信息,请参阅MicrosoftActiveXDataObjects(ADO)和ActiveServerPages(ASP)的详细参考。
五、结束语
在B/S[wiki]结构[/wiki]的开发中,我们可以把一些商业规则或复杂查询用存储过程在DBMS中编写,然后用ASP中的ADO对象调用,完成原来C/S结构中的传统功能。
摘自:http://www.webdn.com/web_file/program/asp/N0610928/
页: [1]
查看完整版本: ASP调用SQL Server视图和存储过程