关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » SQL Server »用ASP调用SQL Server视图和存储过程

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

    2015-11-24 00:00:00 出处:ITJS
    分享

    一、前言

    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结构中的传统功能。

    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    hiberfil.sys文件可以删除吗?了解该文件并手把手教你删除C盘的hiberfil.sys文件

    Window 10和 Windows 11哪个好?答案是:看你自己的需求

    盗版软件成公司里的“隐形炸弹”?老板们的“法务噩梦” 有救了!

    帝国CMS7.5编辑器上传图片取消宽高的三种方法

    帝国cms如何自动生成缩略图的实现方法

    Windows 12即将到来,将彻底改变人机交互

    帝国CMS 7.5忘记登陆账号密码怎么办?可以phpmyadmin中重置管理员密码

    帝国CMS 7.5 后台编辑器换行,修改回车键br换行为p标签

    Windows 11 版本与 Windows 10比较,新功能一览

    Windows 11激活产品密钥收集及专业版激活方法

    IT头条

    智能手机市场风云:iPhone领跑销量榜,华为缺席引争议

    15:43

    大数据算法和“老师傅”经验叠加 智慧化收储粮食尽显“科技范”

    15:17

    严重缩水!NVIDIA将推中国特供RTX 5090 DD:只剩24GB显存

    00:17

    无线路由大厂 TP-Link突然大裁员:补偿N+3

    02:39

    Meta 千万美金招募AI高级人才

    00:22

    技术热点

    微软已修复windows 7/windows 8.1媒体中心严重漏洞 用户可下载安

    卸载MySQL数据库,用rpm如何实现

    windows 7中使用网上银行或支付宝支付时总是打不开支付页面

    一致性哈希算法原理设计

    MySQL数字类型中的三种常用种类

    如何解决SQL Server中传入select语句in范围参数

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。