使用ADODB.Connection和MSSQL在insert语句后返回值

时间:2014-06-30 10:55:25

标签: sql sql-server asp-classic adodb

我在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应该可行。

1 个答案:

答案 0 :(得分:2)

好的我刚刚通过使用SET NOCOUNT ON来解决这个问题 - 看起来虽然它正在执行它实际上是在幕后返回多个输出!