ASP 3.0高级编程(四十一)

2016-01-29 19:17 6 1 收藏

ASP 3.0高级编程(四十一),ASP 3.0高级编程(四十一)

【 tulaoshi.com - ASP 】

  9.2.3 存储过程
       存储过程的使用是Command对象得到应用的一个领域。存储过程(有时也称存储查询)是存储在数据库中预先定义的SQL查询语句。
       为什么应该创建和使用存储过程而不是在代码中直接使用SQL字符串呢?主要有以下几个理由:
       · 存储过程被数据库编译过。这样可以产生一个“执行计划”,因此数据库确切地知道它将做什么,从而加快了过程的执行速度。
       · 存储过程通常被数据库高速缓存,这样使它们运行得更快,因为此时不需要从磁盘中读取它们。并非所有的数据库都支持这种缓存机制,比如微软的Access就不支持,而SQL Server却支持。
       · 通过指定数据库中的表只能被存储过程修改,可以确保数据更安全。这意味着具有潜在危险的SQL操作不会执行。
       · 可以避免将ASP代码和冗长的SQL语句混在一起,从而使ASP代码更易于维护。
       · 可以将所有SQL代码集中存放于服务器。
       · 可以在存储过程中使用输出参数,允许返回记录集或其他的值。
       一般说来,存储过程几乎总是比相当的SQL语句执行速度快。
       为了使用存储过程,只要将存储过程的名字作为命令文本,并设置相应的类型。例如,考虑前面更新书价的例子。如果在SQL Server上创建一个存储过程,可以编写代码:
       CREATE PROCEDURE usp_UpdatePrices
       AS
              UPDATE Titles
              SET        Price = Price * 1.10
              WHERE  TYPE='Business'
       对于微软的Access数据库,可以使用一个简单的更新查询语句完成相同的任务,如图9-1所示:

图9-1  使用微软的Access数据库完成更新查询
       要在ASP网页中运行该存储过程,只需要使用以下代码:
       Set cmdUpdate = Server.CreateObject("ADODB.Command")

       cmdUpdate.ActiveConnection = strConn
       cmdUpdate.CommandText = "usp_UpdatePrices"
       cmdUpdate.CommandType = adCmdStoredProc

       cmdUpdate.Execute , , adExecuteNoRecords
       这只是运行存储过程。没有记录集返回,因为只是在更新数据。需要记住的是,除非确实需要,不要创建记录集。
       虽然这样做也可以,但并不是很灵活,因为仅仅处理一种类型的书。更好的做法是创建一个允许我们选择书类型的过程,这样就不必为每类书创建一个过程。同样也可去掉固定的10%更新,这样使得灵活性更好。那么,如何才能做到这一点呢,很简单,使用参数。
1.  参数
存储过程的参数(或变量)与一般的过程和函数的参数一样,可以传到函数内部,然后函数可以使用它的值。SQL Server(其他数据库也一样,包括Access)中的存储过程都具有这样的功能。
为了使存储过程能处理多种类型的书,甚至允许用户指定价格的增加(或减少),需要增加一些参数:
CREATE PROCEDURE usp_UpdatePrices
       @Type           Char(12),
       @Percent              Money

AS
       UPDATE Titles
       SET        Price = Price * (1 + @Percent / 100)
       WHERE  Type = @Type
现在,存储过程usp_UpdatePrices带有两个参数:
· 一个是书的类型(@Type)。
· 一个是书价变化的百分比

来源:http://www.tulaoshi.com/n/20160129/1508972.html

延伸阅读
标签: ASP
  1.    操作HTTP报头 我们已经在几处见到ASP如何创建或修改在响应页面请示时被发送到客户的HTTP报头。在Response对象中有几个属性和方法可帮助我们做到一点。下面是一些报头方法: · 控制缓存和有效期。 · 创建状态和定制的HTTP报头。 · 指定MIME类型或内容类型。 · 添加PICS标签。 接下来将简要地研究每一个方...
标签: ASP
  第3章 ASP应用程序与会话 在前面的章节中介绍了ASP提供的访问一个客户请求和产生响应的方法,本章将讨论ASP的另两个对象。就是Application和 Session对象。这两个对象不是直接地与请求和响应的管理有关,而是更多地与ASP网页运行环境的管理相关。 与建立Web站点或Web应用程序有关的共同问题之一,是使用HTTP协议时没有状态。...
标签: ASP
  2.  创建Variant数组 在Session和Application对象中创建和使用一个Variant数组来存储值的方法目前尚未讨论,在这里作为一个非常有用的技术进行讨论。正如已经看到的那样,一个Variant数据类型可以包含一个数组,而不仅仅是一个值。 一个数组只是在内存的一个连续区域中以指定的次序存储二进制值的一个长行。要安排Variant,...
标签: ASP
  5.4.1 FileSystemObject对象成员概要        FileSystemObject对象提供一个属性和一系列方法,可用它们来操纵FileSystemObject对象实现的一些从属对象。这里提供了全部的内容概要,然后介绍每一个从属对象。 1.  FileSystemObject的属性 FileSystemObject对象只有一个属性,它用于得到当...
标签: ASP
  (1)  遍历Contents集合的代码 为了遍历Contents集合,可使用一个For Each ... Next结构。集合中的每一项可以是一个简单的Variant类型变量、一个Variant数组或者一个对象的引用。因为需要对每种类型的值进行不同的处理,所以就不得不对每一个进行检查来判别其类型。 在VBScript中可使用VarType函数完成这个工作。这里使用IsObj...

经验教程

574

收藏

98

精华推荐

ASP 3.0高级编程(十二)

ASP 3.0高级编程(十二)

free潇然吹雪

ASP 3.0高级编程(十五)

ASP 3.0高级编程(十五)

半步II天涯

ASP 3.0高级编程(四)

ASP 3.0高级编程(四)

神仙不绝

微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部