Asp classic 如何使用param运行存储过程并将结果存储为经典asp中的记录集

Asp classic 如何使用param运行存储过程并将结果存储为经典asp中的记录集,asp-classic,parameters,recordset,procedure,Asp Classic,Parameters,Recordset,Procedure,我无法找到一个完全涵盖这一点的问题/答案,因此我提出这个问题的原因。我需要做的是运行一个接受1个参数的存储过程。它将返回一组我需要存储在记录集中的结果。我计划稍后循环浏览此记录集。对于较旧的asp,我非常缺乏经验,但以下是我必须做的: dim myConn Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open = ("DSN=example-dsn;SERVER=example-server;DATABASE=examp

我无法找到一个完全涵盖这一点的问题/答案,因此我提出这个问题的原因。我需要做的是运行一个接受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.

我的猜测是,我没有正确设置记录集,但正如我所说,我不是很确定。如果有人能给我指出正确的方向,我将不胜感激

您需要确保结果集是正确的对象

set rs = Server.CreateObject("ADODB.Recordset")
然后你将使用我认为它的工作原理如下:

   rs.Open oStoredProc

然后使用的其他成员循环通过结果。

好的,有一些事情我做错了,但这里是什么结束了我的工作。首先,事实证明我不需要传入参数,但这不是问题所在。其中一个主要问题是“adCmdStoredProc”没有被识别,这很奇怪,因为我在其他地方看到过它的使用,但用它的对应值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
我希望这对其他人有帮助

Dim rsStk As New ADODB.Recordset

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

Set Recordset= CONNECTION .Execute()

这是做这件事的一个简单方法

这可能会有所帮助:我实际上阅读了这篇文章,并根据它做了大部分工作,但是我似乎不能完全正确地理解它。这与从命令的execute方法获取记录集有何不同?