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

    一、前言

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

二、ASP模型

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

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

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

三、ADO

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

ADO包含7个内置对象,它们分别为Connection、Command、RecordSet、Fields、Error、Parameters和Properties。通过这些对象,ASP可以完成对后台数据库的所有操作。

四、ASP调用视图和存储过程

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

1.创建 ODBC DSN 文件

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

2. 调用数据库视图

访问数据库信息的第一步是和数据库源建立连接。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为视图,从视图中查询数据与从基表中查询数据的方法是相同的。

3.调用数据库存储过程<%
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结构中的传统功能。

时间: 2024-08-04 13:15:54

ASP调用SQL Server视图和存储过程的相关文章

ASP调用SQL SERVER存储程序_存储过程

ASP调用SQL SERVER存储程序  出处   http://www.bmj2000.com/vb/techniccolumn/subDetail.asp?MainId=2&BoardId=asp&ItemId=%CA%FD%BE%DD%BF%E2%B2%D9%D7%F7&RecId=2216  调用数据库存储过程 <%     Set Dataconn = Server.CreateObject("ADODB.Connection")      '建

VB/ASP 调用 SQL Server 的存储过程

server|存储过程 昨天有位久未谋面的老同学,突然问起如何在VB中调用SQL的存储过程.当时因为手上没有资料,机器上也没装SQL,随即发了早年写的一段ASP代码,也不知道行不行.抱着负责任的态度,刚好又有点空闲,便做了个测试:(说来惭愧,N久没用VB了,居然不知道怎么加入ADODB类型库了,就填加了一个ADODC控件,汗颜~```) Private Sub ExampleButton_Click()Dim sqlConn As New ADODB.ConnectionDim sqlCmd A

运用ASP调用数据库中视图及存储过程

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

ASP调用SQL SERVER存储程序

调用数据库存储过程<%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(&qu

调用SQL SERVER数据库存储过程实现ASP用户身份验证

server|存储过程|数据|数据库 在我们编写用户身份验证程序中,很容易用ASP调用SQL语句来检索数据表中是否有条件相符的记录,然后再用ASP进行相关处理. 条条道路通罗马!当然,我们也可以用SQL SERVER数据库的存储过程来轻松实现这个功能.虽然相对而言较复杂,但其效率的提升是很明显的,因为存储过程是在数据库中已经编译好的一段程序,我们只需用ASP将其所用的各种参数正确传递就行了. 本文也主要是想通过一个简单的事例,向大家介绍一下如何在ASP中调用带参数的存储过程.希望大家能从中得到更

在asp中调用sql server的存储过程

在asp中调用sql server的存储过程可以加快程序运行速度,所以这些天在研究asp中利用sql server的存储过程,现总结如下,其中很多思想也是直接从chinaasp论坛中得出来,希望能给大家一些帮助.1.调用存储过程的一般方法先假设在sql server中有一存储过程dt_users:CREATE PROCEDURE [dbo].[dt_users] ASselect * from usersreturnGO第一种方法是不利用command对象,直接用recordset对象set r

JSP中调用SQL Server存储过程实例讲解

下面介绍一个JSP调用SQL Server存储过程的实例: 创建表: CREATE TABLE [BookUser] (     [UserID] [int] IDENTITY (1, 1) NOT NULL ,     [UserName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,     [Title] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,     [Guid]

实例讲解JSP调用SQL Server的存储过程

JSP调用SQL Server存储过程的实例: 创建表: CREATE TABLE [BookUser] (     [UserID] [int] IDENTITY (1, 1) NOT NULL ,     [UserName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,     [Title] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,     [Guid] [uniqu

c#-C#程序调用SQL SERVER存储过程的output参数始终为空,求助?

问题描述 C#程序调用SQL SERVER存储过程的output参数始终为空,求助? C#中的如下两条语句调用存储过程output参数始终为空(dataGridView1能正确调用到想要的select数据,但是存储过程的两个输出参数值不能传递给两个texBox.Text),不知为何?textBox1.Text = parameters[2].Value.ToString();textBox2.Text = nowpage + ""/"" + parameters[3