asp

位置:IT落伍者 >> asp >> 浏览文章

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


发布日期:2023年05月28日
 
用ASP调用SQL Server的视图和存储过程

前言

ASP (Active Server Pages) 是服务器端的脚本编写环境它由微软公司的IIS以上版本支持它可用来创建动态 Web 页或生成功能强大的 Web应用程序ASP页是包括 HTML 标记文本和脚本命令的文件ASP页可调用ActiveX组件来执行任务例如连接到数据库或进行商务计算通过ASP可为您的Web页添加交互内容或用HTML页构成整个Web应用程序这些应用程序使用HTML页作为您的客户的界面

ASP模型

如图所示浏览器从Web服务器上请求 asp文件时ASP 脚本开始运行然后Web服务器调用ASPASP全面读取请求的文件执行所有脚本命令并将Web页传送给浏览器

ASP提供了一个在HTML页中使用现有脚本语言如 Microsoft VBScript 和 Microsoft JScript 的框架

ASP提供内建对象这些对象使用户更容易收集通过浏览器请求发送的信息响应浏览器以及存储用户信息包括ApplicationRequestResponseServerSession 和ObjectContext 对象其中最为常用的为RequestResponse 和Server三个对象它们分别用于从浏览器请求信息向浏览器发送信息和访问服务器上对象的属性和方法

ADO

ASP和后台数据库连接使用微软的ADO(ActiveX Data Objects)ADO是一项容易使用并且可扩展的将数据库访问添加到Web页的技术可以使用ADO去编写紧凑简明的脚本以便连接到Open Database Connectivity(ODBC)兼容的数据库和 OLE DB兼容的数据源

ADO包含个内置对象它们分别为ConnectionCommandRecordSetFieldsErrorParameters和Properties通过这些对象ASP可以完成对后台数据库的所有操作

ASP调用视图和存储过程

在一般的MIS应用中会有大量的报表此时我们可以在后台数据库编写相应的视图或存储过程用ASP通过ADO调用以完成报表工作下面用一个例子说明相应的操作过程

创建 ODBC DSN 文件

在创建数据库脚本之前必须提供一条使ADO定位标识和与数据库通讯的途径数据库驱动程序使用Data Source Name (DSN) 定位和标识特定的ODBC兼容数据库将信息从 Web 应用程序传递给数据库

调用数据库视图

访问数据库信息的第一步是和数据库源建立连接ADO提供Connection对象可以使用该对象建立和管理应用程序和 ODBC数据库之间的连接

<%

Set Dataconn = Server.CreateObject("ADODB.Connection") '建立连接对象

Dataconn.Open "DSN=SinoTrans;SERVER=APP_SERVER;UID=sa;PWD=;APP=Microsoft (R) Developer Studio;WSID=APP_SERVER;Regional=Yes"

Set cmdTemp = Server.CreateObject("ADODB.Command") '建立命令对象

Set rst= Server.CreateObject("ADODB.Recordset") '建立记录集对象

cmdTemp.CommandText = "Customers "

cmdTemp.CommandType = 2

Set cmdTemp.ActiveConnection = DataConn

rst.Open cmdTemp, , 1, 3 '生成查询结果

%>

此时Customers为视图从视图中查询数据与从基表中查询数据的方法是相同的

调用数据库存储过程

<%

Set Dataconn = Server.CreateObject("ADODB.Connection") '建立连接对象

Dataconn.Open "DSN=SinoTrans;SERVER=APP_SERVER;UID=sa;PWD=;APP=Microsoft (R) Developer Studio;WSID=APP_SERVER;Regional=Yes"

Set cmdTemp = Server.CreateObject("ADODB.Command") '建立命令对象

Set rst = Server.CreateObject("ADODB.Recordset") '建立记录集对象

cmdTemp.CommandText = "dbo.pd_test" '存储过程名称

cmdTemp.CommandType = 4 '命令类别为4,表示为存储过程

Set cmdTemp.ActiveConnection = Dataconn

Set tmpParam = cmdTemp.CreateParameter("Return Value", 3, 4, 4)

cmdTemp.Parameters.Append tmpParam

Set tmpParam = cmdTemp.CreateParameter("@BeginDate", 135, 1, 16, riqi)

'创建输入参数对象

cmdTemp.Parameters.Append tmpParam

rst.Open cmdTemp, , 1, 3 '生成查询结果

%>

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

<%

Set Dataconn = Server.CreateObject("ADODB.Connection") '建立连接对象

Dataconn.Open "DSN=SinoTrans;SERVER=APP_SERVER;UID=sa;PWD=;APP=Microsoft (R) Developer Studio;WSID=APP_SERVER;Regional=Yes"

ss = "EXECUTE dbo.pd_test " & "'" & riqi1 & "'"

Set rs = dataconn.Execute(ss)

%>

有关ASP和ADO使用的详细信息请参阅 Microsoft ActiveX Data Objects (ADO) 和Active Server Pages(ASP)的详细参考

结束语

在B/S结构的开发中我们可以把一些商业规则或复杂查询用存储过程在DBMS中编写然后用ASP中的ADO对象调用完成原来C/S结构中的传统功能

上一篇:用ASP调用SQL的视图和存储过程

下一篇:用Delphi 6开发ASP上传组件详解