Sql 从存储过程classic asp返回一个值

Sql 从存储过程classic asp返回一个值,sql,stored-procedures,asp-classic,vbscript,Sql,Stored Procedures,Asp Classic,Vbscript,作为存储过程的新手,我不知道如何让经典的ASP(vbscript)页面从存储过程返回值。我可以将数据写入一个表好的,它只是检索让我卡住的东西 如果我用一个非常基本的例子。这是一个存储过程,应返回表中记录的计数: CREATE PROCEDURE [dbo].[SP_RecordCount] AS SELECT COUNT(*) FROM MyTable 为了能够在浏览器中显示值,我需要编写哪些经典ASP代码(以及对存储过程的哪些更改) 一旦我了解了如何获得这样的基本输出,我就有希望(!)

作为存储过程的新手,我不知道如何让经典的ASP(vbscript)页面从存储过程返回值。我可以将数据写入一个表好的,它只是检索让我卡住的东西

如果我用一个非常基本的例子。这是一个存储过程,应返回表中记录的计数:

CREATE PROCEDURE [dbo].[SP_RecordCount] 

AS

SELECT COUNT(*) FROM MyTable
为了能够在浏览器中显示值,我需要编写哪些经典ASP代码(以及对存储过程的哪些更改)

一旦我了解了如何获得这样的基本输出,我就有希望(!)能够建立在知识的基础上

谢谢。

请参阅


在此放置文档标题
第一种方法向数据源查询有关参数的信息
存储过程的一部分。这是调用的效率最低的方法
存储过程。

最干净的方法可能是修改存储过程,如下所示:

CREATE PROCEDURE [dbo].[SP_RecordCount] 
@CountResult int OUTPUT
AS

SELECT @CountResult = COUNT(*) FROM MyTable
。。。这是调用它并读取值的服务器端代码:

Dim cmd
Set cmd = Server.CreateObject("ADODB.Command")

Set cmd.ActiveConnection = .... previously opened ADO connection here
cmd.CommandType = adCmdStoredProc  'be sure adCmdStoredProc constant is set in scope, or hardcode relevant integer instead'
cmd.CommandText = "SP_RecordCount"
cmd.Parameters.Refresh 

cmd.Execute 
Dim count       
count = cmd.Parameters(1)

在您的过程中添加命令SET NOCOUNT ON

CREATE PROCEDURE [dbo].[SP_RecordCount] 

AS

SET NOCOUNT ON

SELECT COUNT(*) FROM MyTable

可能重复感谢您的回复,但我仍然有麻烦。我试图修改示例2以检索我的值,但出现以下错误:Microsoft OLE DB Provider for SQL Server错误“80040e14”过程SP_RecordCount没有参数,并且未提供参数。recordcount.asp,第行14@user2335705:如果您有任何处理
cmd.Parameters
的代码,则需要将其删除,因为您的SP不需要这些代码。
CREATE PROCEDURE [dbo].[SP_RecordCount] 

AS

SET NOCOUNT ON

SELECT COUNT(*) FROM MyTable