2011-04-24 42 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

相关问题