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



'**调用返回多个记录集的存储过程**  
DIM checklg,UserID,UserName,UserTel,UserMail  
DIM MyComm,MyRst  
UserID = 1  
'checklogin()为自定义函数,判断访问者是否登录  
checklg = checklogin()  
Set MyComm = Server.CreateObject("ADODB.Command")  
with MyComm  
 .ActiveConnection = MyConStr 'MyConStr是数据库连接字串  
 .CommandText = "getUserInfo" '指定存储过程名  
 .CommandType = 4 '表明这是一个存储过程  
 .Prepared = true '要求将SQL命令先行编译  
 .Parameters.append .CreateParameter("@userid",3,1,4,UserID)  
 .Parameters.append .CreateParameter("@checklogin",11,1,1,checklg)  
 Set MyRst = .Execute  
end with  
Set MyComm = Nothing  

'从第一个记录集中取值  
UserName = MyRst(0)  
'从第二个记录集中取值  
if not MyRst is Nothing then  
 Set MyRst = MyRst.NextRecordset()  
 UserTel = MyRst(0)  
 UserMail = MyRst(1)  
end if  
Set MyRst = Nothing  
  以上代码中,利用Recordset对象的NextRecordset方法,取得了存储过程返回的多个记录集。  

  至此,针对ASP调用存储过程的各种情况,本文已做了较为全面的说明。最后说一下在一个ASP程序中,调用多个存储过
程的不同方法。  
在一个ASP程序中,调用多个存储过程至少有以下三种方法是可行的:  

  1. 创建多个Command对象  

DIM MyComm  
Set MyComm = Server.CreateObject("ADODB.Command")  
'调用存储过程一  
......  
Set MyComm = Nothing  
Set MyComm = Server.CreateObject("ADODB.Command")  
'调用存储过程二  
......  
Set MyComm = Nothing  
......  
  2. 只创建一个Command对象,结束一次调用时,清除其参数  

DIM MyComm  
Set MyComm = Server.CreateObject("ADODB.Command")  
'调用存储过程一  
.....  
'清除参数(假设有三个参数)  
MyComm.Parameters.delete 2  
MyComm.Parameters.delete 1  
MyComm.Parameters.delete 0  
'调用存储过程二并清除参数  
......  

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

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