【问题标题】:VBScript - Retrieving a Scalar Value From a Stored Procedure on SQL Server 2008VBScript - 从 SQL Server 2008 上的存储过程中检索标量值
【发布时间】:2011-04-24 01:08:24
【问题描述】:

我的存储过程非常简单。它插入一条新记录。在它的末尾,我有以下行:

SELECT SCOPE_IDENTITY()

1) 我是否使用正确的代码来返回新插入记录的主键值?
2) 如何使用 ASP Classic/VBScript 和 ADO Classic 检索此值?

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

【问题讨论】:

    标签: sql-server vbscript asp-classic ado


    【解决方案1】:

    Execute 方法(NOT Exec)返回一个记录集,其中包含存储过程的结果。

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

    【讨论】:

    • 我不得不使用 rs(0) 而不是 rs.Fields(0).Value 但我不知道为什么。此外,对于以后可能会查看此答案的任何新手来说,“rs”是一个记录集变量,“结果”也是一个变量,它们都未在此处声明。
    猜你喜欢
    • 2017-03-14
    • 2015-01-26
    • 1970-01-01
    • 1970-01-01
    • 2015-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多