为什么调用存储过程不能显示记录?

lili1220 2002-09-10 04:57:38
代码如下:
Set rs1=Server.CreateObject("ADODB.Recordset")
set cmd=Server.CreateObject ("ADODB.Command")
set conn=Server.CreateObject ("ADODB.Connection")
set prm=Server.CreateObject ("ADODB.Parameter")

conn.Open "driver={SQL Server};server={server};uid=sa;pwd=;database=dgship"
Set cmd.ActiveConnection = conn
conn.CursorLocation=3
cmd.CommandText = "sp_Monthwage"
cmd.CommandType = 4

Set prm = cmd.CreateParameter("@strYear", adChar, adParamInput,
10, strYear)
cmd.Parameters.Append prm
Set prm = cmd.CreateParameter("@strMonth", adChar, adParamInput, 5, "strMonth")
cmd.Parameters.Append prm
Set prm = cmd.CreateParameter("@last_name", adChar, adParamInput, 50, "last_name")
cmd.Parameters.Append prm

Set rs1 = Cmd.Execute

调用之后页面显示为空。哪里出错?
...全文
53 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lili1220 2002-09-11
  • 打赏
  • 举报
回复
存储过程代码如下:
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO


ALTER PROCEDURE sp_Monthwage
(
@strYear char (10) ,
@strMonth char (5),
@last_name char(50)
)
AS

set nocount on

declare @all_差价 float /*差价*/
declare @all_agentfee float /*代理费*/
declare @all_comm float /*佣金*/
declare @all_kbusd float /*返佣*/
declare @all_profits float /*利润*/
declare @M_wage float /*底薪*/
declare @M_wage_ought float /*应发工资*/
declare @M_wage_fact float /*实发工资*/
declare @Tax float /*个人所得税*/
declare @prue_profits float /*净利润*/

/*从op表读出相关数据,算出该月该业务员的总利润*/
select @all_差价=sum(差价), @all_agentfee = sum(agentfee), @all_comm = sum(comm), @all_kbusd = sum(kbusd), @all_profits = sum(利润)
from op where hbdm='USD' and year(etd) = @strYear and month(etd) = @strMonth and last_name = Ltrim(@last_name)

/*蔡东捷打8折*/
if @last_name='蔡东捷'
begin
select @all_profits=@all_profits*0.8
end

/*算出底薪*/
if @all_profits<=100
begin
select @M_wage=0
end
if @all_profits<=200 and @all_profits>100
begin
select @M_wage=600
end
if @all_profits<=300 and @all_profits>200
begin
select @M_wage=700
end
if @all_profits<=350 and @all_profits>300
begin
select @M_wage=800
end
if @all_profits<=450 and @all_profits>350
begin
select @M_wage=1000
end
if @all_profits>450
begin
select @M_wage=1200
end

/*王雅琴无底薪*/
if @last_name='王雅琴'
begin
select @M_wage=0
end

/*算出应发工资*/
select @M_wage_ought=@M_wage+@all_profits*0.3*8.26

/*<100无提成*/
if @all_profits<=100
begin
select @M_wage_ought=300
end

/*排除特殊情况*/
if Ltrim(@last_name)='Administrator' or Ltrim(@last_name)='德裕' or Ltrim(@last_name)='李延泉' or Ltrim(@last_name)='吴毅铭' or Ltrim(@last_name)='郑毅'
begin
select @M_wage_ought=0
end

select @M_wage_ought=round(@M_wage_ought, 2)

/*算出个人所得税*/
select @Tax=CASE WHEN ((@M_wage_ought - 1300) > 100000) THEN ((@M_wage_ought - 1300) * 0.45 - 15375) WHEN ((@M_wage_ought - 1300) > 80000)
THEN ((@M_wage_ought - 1300) * 0.4 - 10375) WHEN ((@M_wage_ought - 1300) > 60000) THEN ((@M_wage_ought - 1300) * 0.35 - 6375) WHEN ((@M_wage_ought - 1300) > 40000)
THEN ((@M_wage_ought - 1300) * 0.3 - 3375) WHEN ((@M_wage_ought - 1300) > 20000) THEN ((@M_wage_ought - 1300) * 0.25 - 1375) WHEN ((@M_wage_ought - 1300) > 5000)
THEN ((@M_wage_ought - 1300) * 0.2 - 375) WHEN ((@M_wage_ought - 1300) > 2000) THEN ((@M_wage_ought - 1300) * 0.15 - 125) WHEN ((@M_wage_ought - 1300) > 500)
THEN ((@M_wage_ought - 1300) * 0.1 - 25) WHEN ((@M_wage_ought - 1300) > 0) THEN ((@M_wage_ought - 1300) * 0.05) WHEN ((@M_wage_ought - 1300) <= 0) THEN '0' END

/*格式化数据*/
select @Tax=round(@Tax, 2)
select @M_wage_ought=round(@M_wage_ought, 2)

/*算出实发工资*/
select @M_wage_fact=@M_wage_ought-@Tax
select @M_wage_fact=round(@M_wage_fact, 2)

/*算出公司净利润*/
select @prue_profits=@all_profits-@M_wage_ought/8.26
select @prue_profits=round(@prue_profits, 2)

/*新建工资表纪录*/
insert into tmpMonthwage (last_name, wage_Year, wage_Month, M_Wage_Total, 差价, 代理费, 佣金, 返佣, 利润, 净利润)
values (@last_name, @strYear, @strMonth, @M_wage_fact, @all_差价, @all_agentfee, @all_comm, @all_kbusd, @all_profits, @prue_profits)




GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

fjian37 2002-09-11
  • 打赏
  • 举报
回复
在存储过程中要把参数输出,在asp才可接收
lili1220 2002-09-11
  • 打赏
  • 举报
回复
Set rs1 = Cmd.Execute不能用来输出吗?那要什么?
gshope 2002-09-10
  • 打赏
  • 举报
回复
你运行存储过程的时候要带上参数,也正确吗?
freelyl 2002-09-10
  • 打赏
  • 举报
回复

Set rs1 = Cmd.Execute

这个用来输出》?
lili1220 2002-09-10
  • 打赏
  • 举报
回复
存储过程可以执行,在查询分析器里可以出来。
gshope 2002-09-10
  • 打赏
  • 举报
回复
先运行存储过程,看是否正确.

28,391

社区成员

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

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