【发布时间】:2010-04-22 09:50:48
【问题描述】:
出于某种奇妙的原因,我发现自己在调试经典 ASP 页面中的一个问题(在过去的 2 天里我失去了至少 10 年的生命)。
我正在尝试执行一个包含一些 OUT 参数的存储过程。问题是存储过程返回时未填充 OUT 参数之一。我可以从 SQL 管理工作室(这是 2008 年)执行存储过程,并且所有值都按预期设置和返回。
declare @inVar1 varchar(255)
declare @inVar2 varchar(255)
declare @outVar1 varchar(255)
declare @outVar2 varchar(255)
SET @inVar2 = 'someValue'
exec theStoredProc @inVar1 , @inVar2 , @outVar1 OUT, @outVar2 OUT
print '@outVar1=' + @outVar1
print '@outVar2=' + @outVar2
效果很好。极好的。完美的。正在返回并打印出我期望的确切值。
好的,因为我正在尝试调试经典 ASP 页面,所以我将代码复制到 VBScript 文件中以尝试缩小问题范围。
这是我想出的:
Set Conn = CreateObject("ADODB.Connection")
Conn.Open "xxx"
Set objCommandSec = CreateObject("ADODB.Command")
objCommandSec.ActiveConnection = Conn
objCommandSec.CommandType = 4
objCommandSec.CommandText = "theStoredProc "
objCommandSec.Parameters.Refresh
objCommandSec.Parameters(2) = "someValue"
objCommandSec.Execute
MsgBox(objCommandSec.Parameters(3))
不起作用。一点儿都没有。 (我的生命又过了十年)第三个参数只是 NULL - 这也是我在 Classic ASP 页面中遇到的情况。
有人能解释一下吗?我是否完全愚蠢地认为经典的 ASP 代码与 VBScript 代码相同?我认为它使用相同的脚本引擎和语法,所以我应该没问题,但我不是 100% 确定。
我在 VBScript 中看到的结果与我在 ASP 中看到的结果相同。
【问题讨论】:
标签: asp-classic vbscript