0

これを完全にカバーする質問/回答を見つけることができなかったので、なぜ私は尋ねているのですか. 私がする必要があるのは、1 つのパラメーターを受け取るストアド プロシージャを実行することです。レコード セットに保存する必要がある一連の結果が返されます。後でこのレコードセットをループする予定です。古いaspに関しては、私はかなり経験が浅いですが、これまでのところ私がしなければならないことは次のとおりです。

dim myConn
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open = ("DSN=example-dsn;SERVER=example-server;DATABASE=example-db;UID=user;PWD=pass;")

dim oStoredProc : Set oStoredProc = Server.CreateObject("ADODB.Command")
With oStoredProc
    .ActiveConnection = myConn
    .CommandType = adCmdStoredProc
    .CommandText = "myStoredProcedure"
    .Parameters.Append(.CreateParameter("@PARAM1", ADODB.adInteger, ADODB.adParamInput, 10, 2012))
    Dim rs : Set rs = .Execute() 

End With

// Will loop through it here.

私の推測では、レコードセットを正しく設定していないと思いますが、前述のとおり、よくわかりません。誰かが私を正しい方向に向けることができれば、私はそれを感謝します!

4

3 に答える 3

1

さて、私が間違っていたことがいくつかありましたが、これが私のために働いた結果です。まず最初に、パラメータを渡す必要がなかったことがわかりましたが、それはとにかく問題ではありませんでした。その「adCmdStoredProc」が認識されなかった主な問題の1つは、他の場所で使用されているのを見てきたので奇妙ですが、対応する値4に置き換えると機能しました。

dim myConn, cmd

Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open = ("DSN=[BLAH];SERVER=[SERVER];DATABASE=[BLAH];UID=[User];PWD=[Pass];")

dim oStoredProc : Set oStoredProc = Server.CreateObject("ADODB.Command")
oStoredProc.CommandType = 4 
oStoredProc.CommandText = "StoredProcedureName"
oStoredProc.ActiveConnection = myConn
// Add parameters here if needed.

Dim rs 
Set rs = oStoredProc.Execute()

// I Loop through here

rs.Close
myConn.Close
Set rs = Nothing
Set oStoredProc = Nothing
Set myConn = Nothing

他の誰かがそれを必要とするならば、これが役立つことを願っています。

于 2012-06-04T17:28:49.873 に答える
1

結果セットが正しいオブジェクトであることを確認する必要があります

set rs = Server.CreateObject("ADODB.Recordset")

次に、open メソッドを使用します。次のように機能すると思います。

   rs.Open oStoredProc

次に、レコード セット オブジェクトの他のメンバーを使用して、結果をループします。

于 2012-06-01T22:01:08.623 に答える
-1
Dim rsStk As New ADODB.Recordset

Set rsStk = cnnPck.Execute("SP_JOB_ALL '" & Trim(te_Item) & "'")

Set Recordset= CONNECTION .Execute()

これは、このことを行う簡単な方法です

于 2014-04-30T07:35:46.820 に答える