2011-08-30 165 views
1

这是一个扩展: Returning SCOPE_IDENTITY() using Adodb.Command错误“800A01B6”:对象不支持此属性或方法:Object.Parameters.Add”

尝试使用ADO.Command从SP得到SCOPE_IDENTITY(),但当我运行Ado.Command得到一个错误..下面是代码示例:

存储过程:

CREATE PROCEDURE TESTSP 
@LASTID int OUTPUT 

AS 
BEGIN 
SET NOCOUNT ON; 

INSERT INTO TABLE1 (VAL1,VAL2) VALUES (VAL1,VAL2) 

SET @LASTID = SCOPE_IDENTITY() 

的ADO请求:

set SQLCOMM = Server.CreateObject("ADODB.Command") 
SQLCOMM.ActiveConnection = CONNSTRING 
SQLCOMM.CommandText = TESTSP 
SQLCOMM.CommandType = 1 
SQLCOMM.CommandTimeout = 0 
SQLCOMM.Prepared = true 

LastIDParameter = SQLCOMM.CreateParameter("@LastID",3,2) 
SQLCOMM.Parameters.Add(LastIDParameter) 

SQLCOMM.Execute() 

INSERT_RETURNS_SCOPEID=LastIDParameter.Value 

set SQLCOMM=Nothing 

这会导致错误:LastIDParameter = SQLCOMM.CreateParameter("@LastID",3,2)

+0

由于您使用的是SP我猜命令类型应为4。 'SQLCOMM.CommandType = 4'。不知道这是否会照顾你的问题。 –

+0

我的答案解决了你的错误吗? –

回答

1

你行:

SQLCOMM.CommandType = 1 

应改为:

SQLCOMM.CommandType = CommandType.StoredProcedure 
相关问题