0

我对此进行了大量研究并尝试了所有建议。

我在 SQL Server 表中有一个名为LotSqFt. 该表使用名为的存储过程进行更新sp_EditRecord1

SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
SET NOCOUNT ON
GO

ALTER PROCEDURE [dbo].[sp_EditRecord1]
   @LotID      INT,
   @LotSqFt    VARCHAR(16)
AS
    UPDATE Lot 
    SET LotSqFt = @LotSqFt
    WHERE LotID = @LotID

我从 ASP 页面调用此过程,我收到以下错误:

ADODB.Connection 错误 '800a0cc1'
在与请求的名称或序号相对应的集合中找不到项目。

/DTS/engine/processor.asp,第 110 行

第 110 行是:

Response.Write(oDBc.Errors(0).Description)

我读过的所有内容都表明该列的名称错误或不存在。这对我来说不是这种情况,因为我可以在查询分析器中看到该列并从中检索数据。还有什么我忽略的吗?

4

3 回答 3

0

发现 MS-SQL Server 实例上存在缓存问题。重新启动数据库服务器清除了问题并解决了问题。

于 2012-05-09T17:46:17.797 回答
0

就我而言,错误发生在Classic ASP VBScript行上,该行尝试使用在执行 时应检索的存储过程参数,.Parameters.Refresh例如:

Set cmd = server.createobject("ADODB.Command")

cmd.ActiveConnection = Conn 
cmd.CommandText = "your-stored-procedure-name-here"
' Response.Write ( "cmd.CommandText: " & cmd.CommandText & "<br />" & vbCrLf )
cmd.CommandType = adCmdStoredProc
cmd.CommandTimeout = 900 
cmd.Parameters.Refresh
' Response.Write ( "cmd.Parameters.Count: " & cmd.Parameters.Count & "<br />" & vbCrLf )
cmd.Parameters(1).Value = MyValue

确保正确设置了执行存储过程的权限。为我工作。进行数据库还原后我失去了权限:

USE <database> ;
GO
GRANT EXECUTE ON stored-procedure TO user
于 2015-12-15T18:53:40.207 回答
-1

除非您使用“SELECT”语句返回记录集,否则您将没有要迭代的数据库对象。

于 2012-05-09T16:21:22.957 回答