欢迎来到论文网! 识人者智,自知者明,通过生日认识自己! 生日公历:
网站地图 | Tags标签 | RSS
论文网 论文网8200余万篇毕业论文、各种论文格式和论文范文以及9千多种期刊杂志的论文征稿及论文投稿信息,是论文写作、论文投稿和论文发表的论文参考网站,也是科研人员论文检测和发表论文的理想平台。lunwenf@yeah.net。
您当前的位置:首页 > 科技论文 > 计算机论文

浅谈在ASP中调用SQL SERVER中的存储过程

时间:2011-04-23  作者:秩名
strConnString= 'driver={SQL Server};server=(local);uid=sa;pwd=;database=xk'
MyComm.ActiveConnection =strconnstring 'strconnstring是数据库连接字串
MyComm.CommandText = 'p_student''指定存储过程名
MyComm.CommandType = 4 '表明这是一个存储过程
MyComm.Prepared = true '要求将SQL命令先行编译
Set MyRst = MyComm.Execute /**存储过程取得的记录集赋给MyRst,接下来,可以对MyRst进行操作,如记录的增、删、改等操作**/
Set MyComm = Nothing
2)有返回值的存储过程。设有一张表student,通过创建存储过程来删除表中的所有记录,如果在delete顺利执行时,返回1,否则返回0,并进行回滚操作。然后利用ASP调用带返回值的存储过程并取得返回值。实现这种功能的存储过程所对应的代码如下:
CREATE PROCEDURE p_delstudent
as
begin
BEGINTRANSACTION
delete from student
IF @@error=0
begin
COMMITTRANSACTION
return 1
end
ELSE
begin
ROLLBACKTRANSACTION
return 0
end
return
end
go
此时为了在ASP中取得返回值,需要利用Parameters集合来声明参数。此ASP代码如下:
DIM MyComm,MyPara,strconnstring /*定义变量*/
Set MyComm =Server.CreateObject('ADODB.Command') /*创建command对象*/
strConnString= 'driver={SQL Server};server=(local);uid=sa;pwd=;database=xk'
MyComm.ActiveConnection =strconnstring 'strconnstring是数据库连接字串
MyComm.CommandText = 'p_delstudent''指定存储过程名
MyComm.CommandType = 4 '表明这是一个存储过程
MyComm.Prepared = true '要求将SQL命令先行编译
MyComm.Parameters.AppendMyComm.CreateParameter('RETURN',2,4)
MyComm.Execute
'取得返回值
DIM retValue
retValue = MyComm(0) '或retValue = MyComm.Parameters(0)
Set MyComm = Nothing
说明:在MyComm.CreateParameter('RETURN',2,4)中,各参数的含义如下:
第一个参数('RETURE')为参数名。论文检测。参数名可以任意设定,但一般应与存储过程中声明的参数名相同。此处是返回值,我习惯上设为'RETURE';
第二个参数(2),表明该参数的数据类型。论文检测。具体的类型代码请参阅ADO参考。当其值为2时表示该参数的类型为adSmallInt。
第三个参数(4),表明参数的性质,此处4表明这是一个返回值。此参数取值的说明如下:
0 : 类型无法确定; 1: 输入参数;2: 输入参数;3:输入或输出参数;4: 返回值
3)有输入参数和输出参数的存储过程。在ADO中可能通过command对象对存储过程的访问,并且它可以直接执行SQL服务器的存储过程,而命令中所需要的参数可以借助于其属性Pamaters来进行处理。在进行大量数据处理时,常使用带输入输出参数的存储过程。如已知student表中的stuno,便可得该学生的stuname。所对应的存储过程如下:
CREATE PROCEDURE p_getstuName
@stuno char(6), @stuname varchar(10) output
as
begin
if @stuno isnull return
select @stuname=usernamefrom student where stuno=@stuno
return
end
go
调用该存储过程的ASP代码如下:
DIM MyComm,stuno,stuname
Set stuno =’200001’
Set MyComm =Server.CreateObject('ADODB.Command')
MyComm.ActiveConnection='driver={SQL Server};server=(local);uid=sa;pwd=;database=xk'
MyComm.CommandText = 'p_getstuname''指定存储过程名
MyComm.CommandType = 4 '表明这是一个存储过程
MyComm.Prepared = true '要求将SQL命令先行编译
'声明参数
MyComm.Parameters.appendMyComm.CreateParameter('@stuno',129,1,6,stuno)
MyComm.Parameters.appendMyComm.CreateParameter('@stuname',129,2,10)
MyComm.Execute
'取得出参
UserName = MyComm(1)
Set MyComm = Nothing
注意:由以上代码可知,声明输入参数时需要5个参数,声明输出参数时需要4个参数。它们分别代表的含义是:参数名、参数数据类型、参数类型、数据长度、参数值。只是声明输出参数时,没有最后一个参数,参数值而已。另外在声明参数时,顺序一定要与存储过程中定义的顺序相同,而且各参数的数据类型、长度也要与存储过程中定义的相同。
3、结束语
ASP对SQL SERVER存储过程的调用主要有两种方法。而根据输入、输出参数、返回值的情况可能有多种,而本文仅对返回单一记录集、返回值、同时有输入输出参数等情况作了简单的介绍,更深入的知识还有待进一步学习,只要充分利用好它们,会为利用ASP+SQL SERVER进行项目开发增添不少光彩。


参考文献:
[1]ASP+SQL SERVER项目开发实践 黄雷 铁道出版社(2006)
[2]SQL SERVER数据库开发实例解析 赛奎春 机械工业出版社(2006)
[3]网络程序设计ASP 尚俊杰 清华大学出版社
[4]SQL SERVER2000数据库及应用 徐人凤等 高等教育出版社
[5] 经验总结:ASP与存储过程解析 北大青鸟湘计立德
 

查看相关论文专题
加入收藏  打印本文
上一篇论文:浅谈网页设计
下一篇论文:浅谈中小企业网站的制作
科技论文分类
科技小论文 数学建模论文
数学论文 节能减排论文
数学小论文 低碳生活论文
物理论文 建筑工程论文
网站设计论文 农业论文
图书情报 环境保护论文
计算机论文 化学论文
机电一体化论文 生物论文
网络安全论文 机械论文
水利论文 地质论文
交通论文
相关计算机论文
最新计算机论文
读者推荐的计算机论文