请教关于存储过程的例子!

fhb2007 2009-06-30 07:57:33
我定义了下面的存储过程:
CREATE PROCEDURE ls
@my_b1 varchar(20) ,
@jd1 int,
@sl int output
AS
set nocount on
declare @str varchar(500)
set @str = ' select count(id) as '+CAST(@sl AS VARCHAR) +' from ' + @my_b1 + ' where cpdw_id=0 and jd='+ CAST(@jd1 AS VARCHAR)
exec(@str)
GO
下面为调用:
<%
my_b1="cp_dianli"
jd1=1
Set MyComm = Server.CreateObject("ADODB.Command")
MyComm.ActiveConnection=Connstr
MyComm.CommandText="ls"
MyComm.CommandType=4
MyComm.Prepared=true
MyComm.Parameters.append MyComm.CreateParameter("@my_b1",200,1,40,my_b1)
MyComm.Parameters.append MyComm.CreateParameter("@jd1",3,1,4,jd1)
MyComm.Parameters.append MyComm.CreateParameter("@sl",3,2,4)
MyComm.Execute
%>
输出:<%=MyComm(1)%>
在数据库执行的时候结果是39(正确结果)
但是用<%=MyComm(1)%>输出为1,不知道是为什么?还请帮忙!
...全文
58 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzp4881 2009-06-30
  • 打赏
  • 举报
回复
CREATE PROCEDURE ls
@my_b1 varchar(20) ,
@jd1 int,
@sl int output
AS
set nocount on
declare @str nvarchar(500)

set @str = N' select @sl=count(id) from ' + @my_b1 + N' where cpdw_id=0 and jd='+ CAST(@jd1 AS VARCHAR)
EXEC sp_executesql @str,N'@sl int OUTPUT',@sl output
GO

下面为调用:
<%
my_b1="cp_dianli"
jd1=1
Set MyComm = Server.CreateObject("ADODB.Command")
MyComm.ActiveConnection=Connstr
MyComm.CommandText="ls"
MyComm.CommandType=4
MyComm.Prepared=true
MyComm.Parameters.append MyComm.CreateParameter("@my_b1",200,1,40,my_b1)
MyComm.Parameters.append MyComm.CreateParameter("@jd1",3,1,4,jd1)
MyComm.Parameters.append MyComm.CreateParameter("@sl",3,2,4)
MyComm.Execute
%>
输出: <%=MyComm(2)%>
lzp4881 2009-06-30
  • 打赏
  • 举报
回复
<%=MyComm(2)%>
hookee 2009-06-30
  • 打赏
  • 举报
回复
Set rs = MyComm.Execute()
Response.Write rs(0)


28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧