具有多个参数的存储过程挂起

时间:2012-03-07 15:12:16

标签: sql forms asp-classic

我有一个包含2个参数的存储过程。当我在SQL中运行SP时,它会按预期返回值。 当我在我的ASP页面(不是asp.net)中调用SP时,它会挂起。 我有另一个SP只有一个参数,当我从我的ASP页面调用它时,它按预期工作。 这是我用来用2个参数调用SP的代码: MID = Request.Form(“MID”)         CardNoString = Request.Form(“FullCardNo”)

    set connUBC3=Server.CreateObject("ADODB.Connection") 
    connUBC3.Open "UBC" 
    If Err.number <> 0 then
        TrapError Err.source & ": " & Err.description
    End If

    set cmdTranByCardNo = Server.CreateObject("ADODB.Command")

    With cmdTranByCardNo
        .ActiveConnection = connUBC3
        .CommandText = "BlahBlah_Transaction_GetByMerchantIdAndCardNo"
        .CommandType = adCmdStoredProc
        .Parameters.Append .CreateParameter ("RETURN_VALUE", adInteger, adParamReturnValue)
        .Parameters.Append .CreateParameter ("@MerchantID", adVarChar, adParamInput, 20, MID)
        .Parameters.Append .CreateParameter ("@CardNo", adVarChar, adParamInput, 20, CardNoString)
        set SearchTranByCardNoRS = .Execute

        If Err.number <> 0 then
            TrapError Err.source & ": " & Err.description
        End If
    End With

这是单个参数SP的ASP调用:

set connUBC3=Server.CreateObject("ADODB.Connection")  connUBC3.Open "UBC" If Err.number <> 0 then TrapError Err.source & ": " & Err.description End If
cmdFindTrans2 = "BlahBlah_Transaction_GetLast10ByMerchantId '" & MID & "'"   set SearchTranByCardNoRS = connUBC3.Execute(cmdFindTrans2)  If Err.number <> 0 then TrapError Err.source & ": " & Err.description End If

我还尝试了没有Returnvalue行的多参数SP。 任何想法

1 个答案:

答案 0 :(得分:0)

set SearchTranByCardNoRS = Something.Execute这里没有要执行的命令。

cmd.Parameters(1) = x1
cmd.Parameters(2) = x2 
cmd.Parameters(3) = x3
cmd.Execute

另外,我会验证您是否未通过脚本将任何NULLS传递给SQL。这也可能会绊倒它。