2011-08-30 97 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 
相關問題