浅谈在ASP中调用SQL SERVER中的存储过程_第1页
浅谈在ASP中调用SQL SERVER中的存储过程_第2页
浅谈在ASP中调用SQL SERVER中的存储过程_第3页
浅谈在ASP中调用SQL SERVER中的存储过程_第4页
浅谈在ASP中调用SQL SERVER中的存储过程_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、浅谈在ASP中调用SQL SERVER中的存储过程论文导读:ASP (ActiveServer Pages) 是效劳器端的脚本编写环境,可用来创立动态Web页、生成功能强大的Web应用程序和各种基于B/S结构的管理系统。本文就针对ASP调用SQL SERVER中的存储过程来谈谈自己的观点。下面主要介绍如何利用COMMAND对象来对存储过程的调用。关键词:ASP,存储过程,COMMAND对象,CONNECTION对象ASP (ActiveServer Pages) 是效劳器端的脚本编写环境,可用来创立动态Web页、生成功能强大的Web应用程序和各种基于B/S结构的管理系统。ASP技术以通俗易懂的

2、编程方式受到广阔读者的青睐,读者通过短期的根底知识及实例培训即可开发出自己的WEB网站。SQLSERVER是WEB站点部署最常用的数据库,它与ASP结合开发成为这一领域的经典合作。本文就针对ASP调用SQL SERVER中的存储过程来谈谈自己的观点。1、 存储过程的简介1.1存储过程的定义:存储过程是一组编译在单个执行方案中的Transact-SQL语句,它将一些固定的操作集中起来交给SQL SERVER数据库效劳器完成,以实现某个任务。在需要使用时只要调用即可。1.2使用存储过程的优点1通过本地存储、代码预编译和缓存技术实现高性能的数据操作。存储过程是SQL语句和局部控制流语句的预编译集合,

3、存储过程被进行了编译和优化,当存储过程第一次执行时,SQL SERVER为其产生查询方案并将其保存在内存中,这样以后在调用该存储过程时就不必再进行编译,这能在一定程度上改善系统的性能。2通过通用编程结构和过程重用实现编程框架。如果业务规那么发生了变化,可以通过修改存储过程来适应新的业务规那么,而不必修改客户端应用程序。这样所有调用该存储过程的应用程序就会遵循新的业务规那么。3通过隔离和加密的方法提高了数据库的平安性。数据库用户可以通过得到权限来执行存储过程,而不必给予用户直接访问数据库对象的权限。这些对象将由存储过程来进行操作。另外,存储过程可以加密,这样用户就无法阅读存储过程中的Transa

4、ct-SQL命令。这些平安特性将数据库结构和数据库用户隔离开来,这也进一步保证了数据的完整性和可靠性。2、ASP调用存储过程ASP页是包括HTML标记、文本和脚本命令的文件。ASP页可调用ActiveX组件来执行任务,也可以通过ADO组件实现对数据库的调用。2.1 ADO对象简介ASP通过一组称为ADO的对象模块来访问数据库。这样用户在编码时,就不用考虑数据库的类型,因为ADO对象可以通过OLE DB访问数据库。OLE DB是一种数据库体系结构,它使应用程序可以对存储在不同数据库中的数据进行统一的访问。但在访问数据库之前,必须建立数据库的连接。在ASP中连接数据库主要是利用ADO对象中的con

5、nection对象来完成。论文检测。具体见后面的实例。2.2 ASP利用ADO调用存储过程的方法在ASP中,调用存储过程的方法一般来说有两种:一种是用execute直接调用存储过程,另一种是利用command对象来调用存储过程。下面分别通过实例来介绍这两种调用方式。这种方法对调用一些简单的无输出参数的存储过程比拟方便。其操作步骤如下:步骤1:编写sql语句:execute存储过程名参数;。设在XK数据库中有一student表,其结构为classno,stuno,stuname,pwd,现要求创立一个存储过程p_student,使之能完成将student表中的所有记录显示在页面上。那么所对应的代

6、码为:Create procedure p_studentAsSelect * from student/*此时是直接利用recordset.open来执行存储过程的,当然也可用connection对象的execute方法来调用,不过此时要先建一个connection对象*/虽然利用这两种方法能实现对存储过程的调用,但Recordset对象会要求数据库传送所有的数据,那么数据量很大的时候就会造成网络的阻塞和数据库效劳器的负荷过重,从而导致整体的执行效率降低,因此在数据流量大时,常用command对象来完成对存储过程的调用,尤其在用参数查询时其优点更明显。主要是因为Command对象可以直接调用

7、SQL语句,所执行的操作又在数据库效劳器中进行的,显然会有很高的执行效率。下面主要介绍如何利用COMMAND对象来对存储过程的调用。1、ASP中command对象简介在ASP中Command对象又称为命令对象,是对数据库执行命令的对象,利用它的对象、方法与属性可以执行对数据库的查询、添加、删除和修改记录等操作。2、 command对象的建立该对象的建立有两种方法:一种是利用connection对象来建立command对象,另一种是直接建立command对象。由于command对象必须依赖于connection对象,所以直接建立command对象看起来没有明确建立connection对象,但还要

8、隐含地建立一个connection对象。不过,由于没有明确建立,所以就导致connection对象的有些功能无法使用。因此大家一般采用connection对象来建立command对象的。3、ASP调用存储过程实例众所周知,存储过程之所以能提高程序的执行效率,主要是因为它能够利用参数查询。为了方便说明,根据存储过程的输入输出,作以下简单分类:1只返回单一记录集的存储过程设有如以下存储过程,它主要是取得student表中的所有记录,即返回一个结果集,当然如果student表是一张空表,那么ASP调用存储过程的结果集是既无输入也无输出。其对应代码如下:CREATE PROCEDURE p_stude

9、ntasselect * from studentgo通过command对象调用该存储过程的ASP关键代码如下:DIM MyComm,MyRst,strconnstringSet MyComm =Server.CreateObject(ADODB.Command)strConnString= driver=SQL Server;server=(local);uid=sa;pwd=;database=xkMyComm.ActiveConnection =strconnstring strconnstring是数据库连接字串MyComm.CommandText = p_student指定存储过程名

10、MyComm.CommandType = 4 说明这是一个存储过程MyComm.Prepared = true 要求将SQL命令先行编译Set MyRst = MyComm.Execute /*存储过程取得的记录集赋给MyRst,接下来,可以对MyRst进行操作,如记录的增、删、改等操作*/Set MyComm = Nothing2有返回值的存储过程。设有一张表student,通过创立存储过程来删除表中的所有记录,如果在delete顺利执行时,返回1,否那么返回0,并进行回滚操作。然后利用ASP调用带返回值的存储过程并取得返回值。实现这种功能的存储过程所对应的代码如下:CREATE PROCE

11、DURE p_delstudentasbeginBEGINTRANSACTIONdelete from studentIF error=0beginCOMMITTRANSACTIONreturn 1endELSEbeginROLLBACKTRANSACTIONreturn 0endreturnendgo此时为了在ASP中取得返回值,需要利用Parameters集合来声明参数。此ASP代码如下:DIM MyComm,MyPara,strconnstring /*定义变量*/Set MyComm =Server.CreateObject(ADODB.Command) /*创立command对象*/

12、strConnString= driver=SQL Server;server=(local);uid=sa;pwd=;database=xkMyComm.ActiveConnection =strconnstring strconnstring是数据库连接字串MyComm.CommandText = p_delstudent指定存储过程名MyComm.CommandType = 4 说明这是一个存储过程MyComm.Prepared = true 要求将SQL命令先行编译MyComm.Execute取得返回值DIM retValueretValue = MyComm(0) 或retValue

13、 = MyComm.Parameters(0)Set MyComm = Nothing说明:在MyComm.CreateParameter(RETURN,2,4)中,各参数的含义如下:第一个参数(RETURE)为参数名。论文检测。参数名可以任意设定,但一般应与存储过程中声明的参数名相同。此处是返回值,我习惯上设为RETURE;第二个参数(2),说明该参数的数据类型。论文检测。具体的类型代码请参阅ADO参考。当其值为2时表示该参数的类型为adSmallInt。第三个参数(4),说明参数的性质,此处4说明这是一个返回值。此参数取值的说明如下:0 : 类型无法确定; 1: 输入参数;2: 输入参数;

14、3:输入或输出参数;4: 返回值3有输入参数和输出参数的存储过程。在ADO中可能通过command对象对存储过程的访问,并且它可以直接执行SQL效劳器的存储过程,而命令中所需要的参数可以借助于其属性Pamaters来进行处理。在进行大量数据处理时,常使用带输入输出参数的存储过程。如student表中的stuno,便可得该学生的stuname。所对应的存储过程如下:CREATE PROCEDURE p_getstuNamestuno char(6), stuname varchar(10) outputasbeginif stuno isnull returnselect stuname=use

15、rnamefrom student where stuno=stunoreturnendgo调用该存储过程的ASP代码如下:DIM MyComm,stuno,stunameSet stuno =200001Set MyComm =Server.CreateObject(ADODB.Command)MyComm.ActiveConnection=driver=SQL Server;server=(local);uid=sa;pwd=;database=xkMyComm.CommandText = p_getstuname指定存储过程名MyComm.CommandType = 4 说明这是一个存储

16、过程MyComm.Prepared = true 要求将SQL命令先行编译声明参数MyComm.Execute取得出参UserName = MyComm(1)Set MyComm = Nothing注意:由以上代码可知,声明输入参数时需要5个参数,声明输出参数时需要4个参数。它们分别代表的含义是:参数名、参数数据类型、参数类型、数据长度、参数值。只是声明输出参数时,没有最后一个参数,参数值而已。另外在声明参数时,顺序一定要与存储过程中定义的顺序相同,而且各参数的数据类型、长度也要与存储过程中定义的相同。3、结束语ASP对SQL SERVER存储过程的调用主要有两种方法。而根据输入、输出参数、返回值的情况可能有多种,而本文仅对返回

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论