2012-03-07 8 views
0

2つのパラメータを持つストアドプロシージャがあります。   SQLでSPを実行すると、期待どおりの値が返されます。 ASPページ(Not asp.net)でSPを呼び出すと、そのSPがハングします。 私は1つのパラメータだけを取る別の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 

これは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 

私はまた、戻り値のない線を使わずに複数のパラメータSPを試しました。 アイデア

+0

マーチャントサービスアプリケーションのように見えます:)とにかく、あなたはどんな値を渡していますか?正確な値の例は表示されません。この問題は、あなたが渡しているものと、SQLがSPでそれを期待していることとにある可能性があります。 – RogueSpear00

+0

私は各パラメータの数値の文字列に送信しています。そして、それらをsql(同じデータ)で実行すると、期待される結果が返されます。私はまったく同じことをする別のSPを持っています(それはページから呼び出されたときにハングアップしますが、SQLで動作します)、うまく動作することがわかっているuboveとして保存されたProcを持っています。 –

+0

解決策はどれですか?それは 'Execute'か' NULL'でしたか? – RogueSpear00

答えて

0

set SearchTranByCardNoRS = Something.Executeここで実行するコマンドはありません。

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

また、私は、スクリプトを使用してSQLに任意のNULLSを渡していないことを確認します。それも同様にそれをトリップする可能性があります。

+0

OPに通知されるように、質問にコメントしてください。 –

+0

@ShadowWizard - ありがとうございます - 質問に答えるにはまだ半新です:) – RogueSpear00

+0

確かに、そのようなことは些細なことではありません。 :-) –

関連する問題