RT 储存过程CREATE PROCEDURE _SaveCard
@tempname varchar(20),
@tempnum  varchar(16),
@temppass  varchar(8)
AS
declare  @getpass varchar(8), @gettype int, @tempdat datetime
select @getpass = cardpass ,@gettype = cardtype from cardinfo where cardnum = @tempnumif (@getpass is null)
begin
select -1
return
end
else if (@getpass <> @temppass)
begin
select -3
return
endif (@gettype > 0 and  @gettype < 4)
begin
/* 冲值过程 */
select @tempdat = udat  from userinfo where uname = @tempname

if (@tempdat > getdate())
begin
update userinfo set udat = getdate()  where uname = @tempname
end
else if (@tempdat < getdate())
begin
update userinfo set udat = getdate()  where uname = @tempname
end
else if (@tempdat is null)
begin
select -2
return
end
end
else 
begin
select -3
return
end
网上找了很多代码都不好用 
我看到是两种办法 一种是直接得到返回 一种是 adParamOutput 返回参数那位好心的大哥哥 帮帮我

解决方案 »

  1.   

    CREATE PROCEDURE _CheckUser
                    @tempuname varchar (20)
     AS
    declare @tempdat datetime, @nowdat datetime
    select @tempdat = udat  from userinfo where uname = @tempuname
    if (@tempdat > getdate())
    begin
    select 1
    return
    end
    else if (@tempdat < getdate())
    begin
    select 2
    return
    end
    else if (@tempdat is null)
    begin
    select 3
    return
    end
    GO
    VARIANT va;
    va = COleVariant((long)0);
    cmmd->Parameters->Append(cmmd->CreateParameter("ID", adVarChar, 
    adParamInput, 
        len,  
    _variant_t(username))); cmmd->Parameters->Append(cmmd->CreateParameter("Return", 
    adInteger, 
    adParamReturnValue, 
                  sizeof(int), va));
    // 执行
    cmmd->Execute(NULL, NULL, adCmdStoredProc);
    代码总是执行错误 那为大大给看看啊 我摆脱了啊