2011-08-03 13 views
1

戻り値と出力パラメータを持つストアドプロシージャを呼び出すASPページがあります。ASPページが表示されないストアドプロシージャOUTPUT

出力パラメータが表示されていないと私はなぜ理解していないよ:

<% 
    dim Objrs, cmd 
    set Objrs = Server.CreateObject("ADODB.RecordSet") 
    set cmd = Server.CreateObject("ADODB.Command") 
    set conn = Server.CreateObject("ADODB.Connection") 
    conn.Open strConnect 
    set cmd.ActiveConnection = conn 
    cmd.CommandText="MKTG_Current" 
    cmd.CommandType=adCmdStoredProc 
    cmd.Parameters.Append cmd.CreateParameter("@added", 135, 2) 
    cmd.Parameters.Append cmd.CreateParameter("@named", 200, 2, 50) 

    set Objrs = cmd.Execute 
%> 
    </div> 
    <div id="recent-news-box" class="rounded-corners-top dropshadow"> 
     <h3 class="border-dashed-b">Updated on: <%=Objrs.state%></h3> 
     <div> 
<% 
    While Not Objrs.EOF 
     Response.Write Objrs("Subject") 
     Objrs.MoveNext 
    Wend 
    name_of_table = cmd.Parameters("@named").value 
    added = cmd.Parameters("@added").value 
    set cmd = nothing 
    set Objrs = nothing 
    conn.close 
    set conn = nothing 
     Response.Write name_of_table 
     Response.Write added  
%> 
      </div> 
     </div> 
     </div> 

は私が無駄に出力項目の位置を変更しようとしました。

答えて

0

ADOがレコードセットと出力パラメータの両方にコマンド結果を返す方法があるため、いくつかの厄介なことがあります。返されたレコードセットを閉じた後

は、彼らが利用可能ですので、この順番は動作するはずです:

conn.Open strConnect 
    conn.CursorLocation = 3 '//aduseclient 
    set cmd.ActiveConnection = conn 

set Objrs = nothing 

    name_of_table = cmd.Parameters("@named").value 
    added = cmd.Parameters("@added").value 

    set cmd = nothing 
    conn.close 
    set conn = nothing 

    Response.Write name_of_table 
    Response.Write added 

代替は、それがでクライアント側カーソルにスイッチを追加しているように、コードを残しています

(タイプライブラリにリンクされていない場合はadCmdStoredProcの数値を数値に置き換えないでください)

+0

優秀!クライアントへのカーソルの変更はトリックでした! – Techmaniac

関連する問題