我已经对此进行了大量研究并尝试了所有建议。
我在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)。说明)
我读过的所有内容都说列的名称错误或不存在。对我来说情况并非如此,因为我可以在查询分析器中看到该列并从中检索数据。还有别的东西我可以忽略吗?
答案 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”语句返回记录集,否则您将没有要迭代的数据库对象。