标题:有关asp调用存储过程问题
只看楼主
onlybaby314
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-7-14
结帖率:0
已结贴  问题点数:5 回复次数:8 
有关asp调用存储过程问题
以下是asp里面调用的
Set MyComm = Server.CreateObject(")
with MyComm
.ActiveConnection = connGift
.CommandText = "sp_EXT_VIP_GetGift"
.CommandType = 4
.Prepared = true
.Parameters.Append .CreateParameter("@RUN_TYPE",3,1,,1)
.Parameters.Append .CreateParameter("@GIFT_IDs",200,1,1023,"2,1")
.Parameters.Append .CreateParameter("@ROW_COUNT",3,2)
.Parameters.Append .CreateParameter("@IS_SUCCESS",3,2)
.Parameters.Append .CreateParameter("@Message",200,2,80)
Set MyRst = .Execute
end with
response.write(MyComm(3))
这里为何老是没法输出值,也不抱任何错误。注:存储过程肯定是没问题的。因为在.net里面执行过,完全正常的。


直接在查询器里执行的:
declare @RUN_TYPE int--运行的类型(为0时表示获取数据总数,其他表示获取数据)
declare @GIFT_IDs varchar(1023)--商品ID 多个商品,用逗号分开
declare @ROW_COUNT int--记录总数量
declare @IS_SUCCESS int--是否成功, 0为失败,1为成功
declare @Message varchar(80)--返回消息

set @RUN_TYPE = 1
set @GIFT_IDs = '1,4,30,23'
exec sp_EXT_VIP_GetGift @RUN_TYPE,@GIFT_IDs,@ROW_COUNT out,@IS_SUCCESS out, @Message out
print (@ROW_COUNT)
搜索更多相关主题的帖子: asp 
2010-07-14 20:18
onlybaby314
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-7-14
得分:0 
没人回答我么
2010-07-14 21:24
hams
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:18
帖 子:912
专家分:3670
注 册:2008-7-30
得分:2 
MyComm(3)这个有值么?

俺不高手,俺也是来学习的。
俺的意见不一定就对,当你不认同时请点忽视按钮。
当走到十字路口不知该如何走时,可在论坛问下路,但你若希望别人能一路把你送到目的地,显然是不现实的,因为别人也有自己要走的路。
2010-07-15 09:02
onlybaby314
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-7-14
得分:0 
正确的应该会有0或者1输出的。就是IS_SUCCESS这个变量。
2010-07-15 09:12
onlybaby314
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-7-14
得分:0 
我要疯了,哪位高人解答下啊。。。
2010-07-15 11:26
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
得分:2 
加个判断试试:
if MyRst.state = 0 then '未取到数据

★★★★★为人民服务★★★★★
2010-07-15 11:51
onlybaby314
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-7-14
得分:0 
以下是引用cnfarer在2010-7-15 11:51:57的发言:

加个判断试试:
if MyRst.state = 0 then '未取到数据
进入到'未取到数据'的判断里面了。
2010-07-15 12:35
onlybaby314
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-7-14
得分:0 
以下是存储过程源代码:

USE [ALPHABET_TEST]
GO
/****** 对象:  StoredProcedure [dbo].[sp_EXT_VIP_GetGift]    脚本日期: 07/14/2010 13:31:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[sp_EXT_VIP_GetGift]

@RUN_TYPE int,--运行的类型(为0时表示获取数据总数,其他表示获取数据)
@GIFT_IDs varchar(1023),--商品ID 多个商品,用逗号分开
@ROW_COUNT int out,--记录总数量
@IS_SUCCESS int out,--是否成功, 0为失败,1为成功
@Message varchar(80) out--返回消息


AS
BEGIN

    declare @num int
    if @RUN_TYPE = 0
        begin
            select @ROW_COUNT=count(*) from gift where publ_date <= getdate() and [status] = 'A'
        return
        end
     else
        begin
 
            declare @ids table(AUTO_ID int  primary key IDENTITY(1,1), GIFT_ID numeric(6, 0))

            begin try
                insert into @ids select * from dbo.f_splitstr(@GIFT_IDs,',')
            end try
            begin catch
                set @IS_SUCCESS = 0
                set @Message = '参数数据类型错误!'
            return
            end catch

            select [@ids].GIFT_ID,GIFT.GIFT_NUM,GIFT.GIFT_NAME,GIFT.PNT_NEEDED,GIFT.PUBL_DATE from @ids left outer join GIFT on [@ids].GIFT_ID = GIFT.GIFT_ID and GIFT.PUBL_DATE <= getdate() and GIFT.[STATUS] = 'A'

            set @IS_SUCCESS = 1
            set @Message = '数据获取成功!'
        return
        end

END
2010-07-15 12:36



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-312996-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.391982 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved