我在Classic ASP中有一个SQL语句,如下所示(我在此重新编写了这个例子)
sql = "exec TESTSP 'mytable', @id output"
sql = sql & " select @company = (select id from company where company 'MyCompany')"
sql = sql & " insert into DETAILS (id, company, description)"
sql = sql & " values (@id, @company, 'Testing')"
sql = sql & " select @id as newid"
Conn.Open sConnectopn
set rs = conn.Execute(sql)
Response.Write(rs("newid"))
我知道这不是最佳做法,但它已经写好了,我现在无法修改代码,但我正在努力获得" id"这是由存储过程发布的。
所以我添加了最后一行:
sql = sql & " select @id as newid"
并且希望从记录集中得到这个。
这可能吗?我每次都会收到此错误:
ADODB.Recordset error '800a0cc1'
Item cannot be found in the collection corresponding to the requested name or ordinal.
在SQL中运行它会返回一个名为" newinc"的列。有一个值。所以SQL应该可行。
答案 0 :(得分:2)
好的我刚刚通过使用SET NOCOUNT ON来解决这个问题 - 看起来虽然它正在执行它实际上是在幕后返回多个输出!