gpt4 book ai didi

sql - 为什么使用@Table 变量会导致应用程序出现Adodb 问题?

转载 作者:行者123 更新时间:2023-12-05 08:59:58 30 4
gpt4 key购买 nike

我有 [MySp],一个存储过程。

所以检查一下......当我运行它时它有效:

 SELECT ID,Name FROM Table

但是,当我这样做时,应用程序端 (Adodb) 出现错误

 Declare @Table TABLE(ID int,Name varchar(10))

--- Inserts into table variable ---
INSERT INTO @Table
SELECT ID,Name FROM Table

--- Returns data from table variable ---
SELECT ID,Name FROM @Table

请记住,在 SQL 控制台中,我得到与 [MySp] 相同的结果,但在应用程序/adodb 代码中我得到错误。

ASP 代码:

Set oRS = Server.CreateObject("Adodb.Recordset")
oRS.Open "[MySp]", Conn
If oRS.EOF Then... <--Gives an error

ADODB.Recordset error '800a0e78'
Operation is not allowed when the object is closed.

有人知道为什么我在 SQL 中使用表变量时会收到此错误吗?

最佳答案

尝试添加 SET NOCOUNT ON在存储过程的顶部。

我有一个模糊的记忆,ADO 曾经对从插入/更新/删除返回的结果计数感到困惑。

例如:

CREATE PROCEDURE MySP
AS

SET NOCOUNT ON

Declare @Table TABLE(ID int,Name varchar(10))

--- Inserts into table variable ---
INSERT INTO @Table
SELECT ID,Name FROM Table

--- Returns data from table variable ---
SELECT ID,Name FROM @Table

关于sql - 为什么使用@Table 变量会导致应用程序出现Adodb 问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10990993/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com