求高手解决一下出现新ASP与存储过程的返回值的问题

wuting168 2009-02-12 09:37:23
以下存储过程
CREATE PROCEDURE addnews @oNEWS_Title char(60),@oType int,@oNEWS_Content ntext,@oHot int AS
insert WK_News (NEWS_Title,Type,NEWS_Date,NEWS_Content,Hot) values (@oNEWS_Title,@oType,getdate(),@oNEWS_Content,@oHot)
IF @@RowCount > 0
BEGIN
SELECT 1,@@identity
END
ELSE
BEGIN
SELECT -1
END
GO

2、asp调用文件

sql="execute addnews '"&Otitle&"',"&ONews_class&",'"&Date()&"','"&Ocontent&"',"&Ohot
Set News_add_rs=server.CreateObject("ADODB.Recordset")
Set News_add_rs=conn.execute(sql)
if News_add_rs(0)=1 then
  A_ID=trim(News_add_rs(1))
  B_ID=MD5(A_ID)
  sql="UPDATE WK_NEWS Set MD5_NEWS_ID='"&B_ID&"' WHERE News_id="&A_ID
  conn.execute(Sql)
 end if

问题是调用存储过程能有效的插入一个新的记录,可无返回值,但在sql分析器中调用存储却有二个返回值,求帮忙解决一下,万分感谢!!!

...全文
94 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuting168 2009-02-16
  • 打赏
  • 举报
回复
注以上代码有误

CREATE PROCEDURE addnews @oNEWS_Title char(60),@oType int,@oNEWS_Content ntext,@oHot int AS
insert WK_News (NEWS_Title,Type,NEWS_Date,NEWS_Content,Hot) values (@oNEWS_Title,@oType,getdate(),@oNEWS_Content,@oHot)
IF @@RowCount > 0
BEGIN
SELECT 1,@@identity
END
ELSE
BEGIN
SELECT -1
END
GO

2、asp调用文件

sql="execute addnews '"&Otitle&"',"&ONews_class&",'"&Ocontent&"',"&Ohot
Set News_add_rs=server.CreateObject("ADODB.Recordset")
Set News_add_rs=conn.execute(sql)
if News_add_rs(0)=1 then
  A_ID=trim(News_add_rs(1))
  B_ID=MD5(A_ID)
  sql="UPDATE WK_NEWS Set MD5_NEWS_ID='"&B_ID&"' WHERE News_id="&A_ID
  conn.execute(Sql)
 end if

问题是调用存储过程能有效的插入一个新的记录,可无返回值,但在sql分析器中调用存储却有二个返回值,求帮忙解决一下,万分感谢!!!
lzp4881 2009-02-16
  • 打赏
  • 举报
回复
asp调用:
DIM MyComm : Set MyComm = Server.CreateObject("ADODB.Command")
with MyComm
.ActiveConnection = Conn
.CommandText = "addnews"
.CommandType = 4
.Prepared = true
.Parameters.append MyComm.CreateParameter("RETURN",2,4)
.Parameters.append MyComm.CreateParameter("@id",3,2,4,id)
.Parameters.append MyComm.CreateParameter("@oNEWS_Title",200,1,60,Otitle)
.Parameters.append MyComm.CreateParameter("),@oType",3,1,4,ONews_class)
.Parameters.append MyComm.CreateParameter("@oNEWS_Content",200,1,5000,Ocontent)
.Parameters.append MyComm.CreateParameter("@oHot",3,1,4,Ohot)
.Execute
end with

if MyComm(0)=1 then
A_ID=MyComm(1)
B_ID=MD5(A_ID)
sql="UPDATE WK_NEWS Set MD5_NEWS_ID='"&B_ID&"' WHERE News_id="&A_ID
conn.execute(Sql)
end if
Set MyComm = Nothing

存储过程:
CREATE PROCEDURE addnews

@id int output,
@oNEWS_Title char(60),
@oType int,
@oNEWS_Content ntext,
@oHot int

AS

insert WK_News (NEWS_Title,Type,NEWS_Date,NEWS_Content,Hot) values (@oNEWS_Title,@oType,getdate(),@oNEWS_Content,@oHot)
if @@error <> 0
begin
return -1
end

Select @id=@@identity
return 1

GO

wlkjhxd 2009-02-13
  • 打赏
  • 举报
回复
你说的返回值是指的什么,我没看到你存储过程代码里有返回值啊,还有你的存储过程的参数和你调用的参数个数不同
wuting168 2009-02-13
  • 打赏
  • 举报
回复
回复2楼:按你的提示做但还是没有返回值
wlkjhxd 2009-02-12
  • 打赏
  • 举报
回复
sql="{call addnews('"&Otitle&"',"&ONews_class&",'"&Date()&"','"&Ocontent&"',"&Ohot&")}"

这样应该就可以了
parss 2009-02-12
  • 打赏
  • 举报
回复

rtn=conn.execute(Sql)

28,391

社区成员

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

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