Sql 从存储过程classic asp返回一个值
作为存储过程的新手,我不知道如何让经典的ASP(vbscript)页面从存储过程返回值。我可以将数据写入一个表好的,它只是检索让我卡住的东西 如果我用一个非常基本的例子。这是一个存储过程,应返回表中记录的计数: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代码(以及对存储过程的哪些更改) 一旦我了解了如何获得这样的基本输出,我就有希望(!)
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