+ -
当前位置:首页 → 问答吧 → 存储过程返回值的问题。

存储过程返回值的问题。

时间:2011-11-16

来源:互联网

asp code:
set CnInfo = OpenConn
set RsInfo = Server.CreateObject("Adodb.RecordSet")
Set MyComm = Server.CreateObject("ADODB.Command") 
with MyComm 
.ActiveConnection = CnInfo 
.CommandText = "GetListByPageIndex" 
.CommandType = 4 
.Prepared = true 
.Parameters.append MyComm.CreateParameter("@pageCount",2,2,4,-1) 
.Parameters.append MyComm.CreateParameter("@strCondition",200 ,1,500,"")
.Parameters.append MyComm.CreateParameter("@tbName",200 ,1,50,"User_Search_Base")
.Parameters.append MyComm.CreateParameter("@pageSize",200 ,1,4,4)
.Parameters.append MyComm.CreateParameter("@pageIndex",200 ,1,4,1)
end with 

set rsInfo = MyComm.execute
nPageCount = MyComm(0)




PROCEDURE code:
CREATE PROCEDURE GetListByPageIndex
@pageCount int output,
@strCondition varchar(500),
@tbName varchar(30),
@pageSize int, 
@pageIndex int
AS
set nocount on 

DECLARE @sql nvarchar(1000) 
if @pageCount = -1 
begin
if @strCondition = ''
begin
set @sql = 'select @pageCount=count(*) from '+@tbName
exec sp_ExecuteSql @sql,N'@pageCount int output',@pageCount OUTPUT
set @pageCount = (@pageCount+@pageSize-1)/@pageSize
end
else
begin
set @sql = 'select @pageCount=count(*) from '+@tbName+' where '+@strCondition
exec sp_ExecuteSql @sql,N'@pageCount int output',@pageCount OUTPUT
set @pageCount = (@pageCount+@pageSize-1)/@pageSize
end
end
if @strCondition = ''
begin
SET @sql = 'select top '+cast(@pagesize as varchar(20))+' * from '+@tbName
set @sql = @sql +' where user_id not in (select top '
set @sql = @sql + cast((@pageSize*(@pageindex-1)) as varchar(20)) + ' user_id from '+@tbName
set @sql = @sql +' order by user_id desc) order by user_id desc' 
end
else
begin
SET @sql = 'select top '+cast(@pagesize as varchar(20))+' * from '+@tbName+' where '+@strCondition
set @sql = @sql +' and user_id not in (select top '
set @sql = @sql + cast((@pageSize*(@pageindex-1)) as varchar(20)) + ' user_id from '+@tbName+' where '+@strCondition 
set @sql = @sql +'order by user_id desc) order by user_id desc' 
end

EXEC sp_ExecuteSql @sql
return @pageCount

怎么取不到返回值呢?

作者: postfix2   发布时间: 2011-11-16

参考:<%  
dim objCnn  
dim objCmd  
dim Rs  
const o_id=112  

' '-----建立Connection对象----------  
set objCnn=Server.CreateObject( "Adodb.connection ")  
objCnn.Open "driver={sql server};server=localhost;uid=sa;pwd=cncanet;database=check; "  
' '-----建立Command对象-----------  
set objCmd=Server.CreateObject( "Adodb.Command ")  
objCmd.ActiveConnection=objCnn  
objCmd.CommandText= "order_tot_amt " ' '指定存储过程名称  
objCmd.CommandType=adCmdStoredProc ' '其为Stored Procedure  
' '-----准备stored procedure 的参数-------  
objCmd.Parameters.Append _  
objCmd.CreateParameter( "o_id ",adInteger,adParamInput,,o_id)  
objCmd.Parameters.Append _  
objCmd.CreateParameter( "p_tot ",adBigInt,adParamOutput,,0)  
' '-----执行存储过程----------------------  
objCmd.Execute  

' '-----输出参数以及处理结果--------------  
for each parm in objCmd.Parameters  
Response.Write parm.name & "= "& trim(parm) & " <br> "  
next  
%>  

作者: hefeng_aspnet   发布时间: 2011-11-16

热门下载

更多