ASP开发中存储过程应用全接触(4)



  以上给出的ASP代码,应该说是完整的代码,也即最复杂的代码,其实  

Set Mypara = MyComm.CreateParameter("RETURN",2,4)  
MyComm.Parameters.Append MyPara  
  可以简化为  

MyComm.Parameters.Append MyComm.CreateParameter("RETURN",2,4)  
  甚至还可以继续简化,稍后会做说明。  

  对于带参数的存储过程,只能使用Command对象调用(也有资料说可通过Connection对象或Recordset对象调用,但我没
有试成过)。  

  4. 有输入参数和输出参数的存储过程  

  返回值其实是一种特殊的输出参数。在大多数情况下,我们用到的是同时有输入及输出参数的存储过程,比如我们想取
得用户信息表中,某ID用户的用户名,这时候,有一个输入参数----用户ID,和一个输出参数----用户名。实现这一功能的
存储过程如下:  

/*SP4*/  
CREATE PROCEDURE dbo.getUserName  
@UserID int,  
@UserName varchar(40) output  
as  
set nocount on  
begin  
if @UserID is null return  
select @UserName=username  
from dbo.[userinfo]  
where userid=@UserID  
return  
end  
go  
  调用该存储过程的ASP代码如下:  

'**调用带有输入输出参数的存储过程**  
DIM MyComm,UserID,UserName  
UserID = 1  
Set MyComm = Server.CreateObject("ADODB.Command")  
MyComm.ActiveConnection = MyConStr 'MyConStr是数据库连接字串  
MyComm.CommandText = "getUserName" '指定存储过程名  
MyComm.CommandType = 4 '表明这是一个存储过程  
MyComm.Prepared = true '要求将SQL命令先行编译  
'声明参数  
MyComm.Parameters.append MyComm.CreateParameter("@UserID",3,1,4,UserID)  
MyComm.Parameters.append MyComm.CreateParameter("@UserName",200,2,40)  
MyComm.Execute  
'取得出参  
UserName = MyComm(1)  
Set MyComm = Nothing  
  在以上代码中,可以看到,与声明返回值不同,声明输入参数时需要5个参数,声明输出参数时需要4个参数。声明输入
参数时5个参数分别为:参数名、参数数据类型、参数类型、数据长度、参数值。声明输出参数时,没有最后一个参数:参
数值。  

  需要特别注意的是:在声明参数时,顺序一定要与存储过程中定义的顺序相同,而且各参数的数据类型、长度也要与存

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/3526.html