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


储过程返回执行情况,为此,将SP2修改如下:  

/*SP3*/  
CREATE PROCEDURE dbo.delUserAll  
as  
set nocount on  
begin  
BEGIN TRANSACTION  
delete from dbo.[userinfo]  
IF error=0  
begin  
COMMIT TRANSACTION  
return 1  
end  
ELSE  
begin  
ROLLBACK TRANSACTION  
return 0  
end  
return  
end  
go  
  以上存储过程,在delete顺利执行时,返回1,否则返回0,并进行回滚操作。为了在ASP中取得返回值,需要利用
Parameters集合来声明参数:  

'**调用带有返回值的存储过程并取得返回值**  
DIM MyComm,MyPara  
Set MyComm = Server.CreateObject("ADODB.Command")  
MyComm.ActiveConnection = MyConStr 'MyConStr是数据库连接字串  
MyComm.CommandText = "delUserAll" '指定存储过程名  
MyComm.CommandType = 4 '表明这是一个存储过程  
MyComm.Prepared = true '要求将SQL命令先行编译  
'声明返回值  
Set Mypara = MyComm.CreateParameter("RETURN",2,4)  
MyComm.Parameters.Append MyPara  
MyComm.Execute  
'取得返回值  
DIM retValue  
retValue = MyComm(0) '或retValue = MyComm.Parameters(0)  
Set MyComm = Nothing  
  在MyComm.CreateParameter("RETURN",2,4)中,各参数的含义如下:  

  第一个参数("RETURE")为参数名。参数名可以任意设定,但一般应与存储过程中声明的参数名相同。此处是返回值,我
习惯上设为"RETURE";  

  第二个参数(2),表明该参数的数据类型,具体的类型代码请参阅ADO参考,以下给出常用的类型代码:  

adBigInt: 20 ;  
adBinary : 128 ;  
adBoolean: 11 ;  
adChar: 129 ;  
adDBTimeStamp: 135 ;  
adEmpty: 0 ;  
adInteger: 3 ;  
adSmallInt: 2 ;  
adTinyInt: 16 ;  
adVarChar: 200 ;  
  对于返回值,只能取整形,且-1到-99为保留值;  

  第三个参数(4),表明参数的性质,此处4表明这是一个返回值。此参数取值的说明如下:  

  0 : 类型无法确定; 1: 输入参数;2: 输入参数;3:输入或输出参数;4: 返回值  

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

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