2011-04-24 48 views
3

我的存儲過程非常簡單。它插入一個新的記錄。在它的結尾處,我有以下行:VBScript - 從SQL Server 2008上的存儲過程中檢索標量值

SELECT SCOPE_IDENTITY() 

1)我是否使用正確的代碼返回新插入記錄的主鍵值?
2)如何使用ADO Classic使用ASP Classic/VBScript檢索此值?

Dim cmdUA 
Set cmdUA = Server.CreateObject("ADODB.Command") 
Set cmdUA.ActiveConnection = tcon 
cmdUA.CommandText = "InsertUserAgent" 
cmdUA.CommandType = adCmdStoredProc 
cmdUA.Parameters.Append cmdUA.CreateParameter("useragent", adVarWChar, _ 
adParamInput, 1000) 
cmdUA("useragent") = Request.ServerVariables("HTTP_USER_AGENT") 
cmdUA.Exec 
'Here I need to get the value returned from the stored procedure 
Set cmdUA.ActiveConnection = Nothing 
Set cmdUA = Nothing 

回答

4

Execute方法(NOT Exec)返回一個包含存儲過程結果的記錄集。

Set rs = cmdUA.Execute 
result = rs.Fields(0).Value 
+0

我不得不使用rs(0)而不是rs.Fields(0).Value,但我不知道爲什麼。此外,對於任何可能稍後會查看此答案的新手而言,'rs'是一個記錄集變量,'result'也是一個變量,它們都未在此聲明。 – HK1 2011-04-24 02:59:22

相關問題