文章探索:   分类:    关键字:  
  + 栏目导航
  + 相关文章
asp中有关字符编码转换的几个函数
绝妙的asp生成静态页面html函数
Asp计算页面执行时间
一个简单的用存储过程分页
将asp页面转换成htm页面
ASP网站漏洞解析及黑客入侵防范方法
URL编码与SQL注入
几种常用排序算法(asp)
ASP调用带参数存储过程的几种方式
实用的ASP连接数据库的函数
ASP如何获取真实IP地址
ASP中怎么实现SQL数据库备份、恢复
判断Cookies是否处于开启状态
怎样才能将服务器端文件夹下的文件,..
几行Asp代码实现防止表单重复提交
用ASP设计网站在线人数统计程序
asp论坛在线人数统计研究
如何用ASP远程在数据库中创建Table
用ASP调用SQL Server的视图和存储过程
Asp与XML的关系
ASP读取EXCEL
在ASP中使用Oracle数据库技巧
一个通过web.Mail发送邮件的类
几种打开记录集方式的比较
购物车范例(购物车页面 )
如何使用FSO搜索硬盘文件
GB码和BIG5码的互换技术
用ASP开发WEB日期选择器
一个投票系统的源程序(coveryourasp.c..
列出服务器上的打印机


技术教程 -> ASP教程 ->  
用ASP调用SQL Server的视图和存储过程
来源:转载   人气:1739   录入时间:2007-11-8
    一、前言
   
     ASP (Active Server Pages) 是服务器端的脚本编写环境,它由微软公司的IIS3.0以上版本支持。它可用来创建动态 Web 页或生成功能强大的 Web应用程序。ASP页是包括 HTML 标记、文本和脚本命令的文件。ASP页可调用ActiveX组件来执行任务,例如连接到数据库或进行商务计算。通过ASP,可为您的Web页添加交互内容或用HTML页构成整个Web应用程序,这些应用程序使用HTML页作为您的客户的界面。
   
   二、ASP模型
   
     如图1所示,浏览器从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结构中的传统功能。
   




Copyright(C)2007-2024 广州市佳沛数码科技有限公司 版权所有
公司地址: 广州市荔湾区东漖北路560号511室
电话:020-81803473 传真:020-81544987