ASP& SQL Server错误:无法在与请求的名称或序号对应的集合中找到项目

时间:2012-05-09 15:33:15

标签: sql-server asp-classic

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

我在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行是:

     

回复于(oDBc.Errors(0)。说明)

我读过的所有内容都说列的名称错误或不存在。对我来说情况并非如此,因为我可以在查询分析器中看到该列并从中检索数据。还有别的东西我可以忽略吗?

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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

答案 2 :(得分:-1)

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