2012-03-07 5 views
0

У меня есть хранимая процедура с двумя параметрами.   Когда я запускаю SP в SQL, он возвращает значения, как ожидалось. Когда я вызываю SP на моей странице ASP (Not asp.net), он зависает. У меня есть еще один SP, который принимает только один параметр, и когда я вызываю это с моей ASP-страницы, он работает так, как ожидалось. Это код, я использую для вызова SP с 2 параметрами: 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 

это вызов ASP для одного параметра SP, который работает:

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 

Я также пробовал несколько параметров SP без строки Returnvalue. Любая идея

+0

Похоже, что приложение для торговых услуг :) В любом случае, какие значения вы передаете? Я не вижу примера точных значений. Проблема может заключаться в том, что вы передаете и как SQL ожидает его с SP. – RogueSpear00

+0

Я отправляю в строки чисел по одному для каждого параметра, и когда я запускаю их в sql (одни и те же данные), он возвращает ожидаемые результаты. У меня есть еще один SP, который делает точно то же самое (что означает, что он зависает при вызове со страницы, но работает в SQL), и у меня есть сохраненный Proc, как указано, ubove, который отлично работает. –

+0

Какая часть была решением? Было ли это 'Execute' или' NULL'? – RogueSpear00

ответ

0

set SearchTranByCardNoRS = Something.Execute Здесь нет команды для выполнения.

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

Кроме того, я бы убедиться, что вы не передаете никакого NULLS к SQL через скрипт. Это тоже может покончить с этим.

+0

Вы должны спросить его в комментариях к вопросу, чтобы ОП уведомлялся. –

+0

@ShadowWizard - Спасибо - все еще полу-новый ответ на вопросы :) – RogueSpear00

+0

Конечно, такие вещи не тривиальны - мне потребовались долгие месяцы. :-) –

Смежные вопросы