gpt4 book ai didi

.net - 为什么此查询返回的记录集的状态为 "closed"?

转载 作者:行者123 更新时间:2023-12-02 15:42:03 25 4
gpt4 key购买 nike

我正在从 LabVIEW(一种图形编程语言)运行以下 SQL 查询,并使用其内置的数据库连接功能:

DECLARE @currentID int
SET @currentID = (SELECT MIN(ExperimentID) FROM Jobs_t WHERE JobStatus = 'ToRun');
UPDATE [dbo].[Jobs_t]
SET [JobStatus] = 'Pending'
WHERE ExperimentID = @currentID;
SELECT @currentID AS result

enter image description here

这是类似于 C 语言的 main() 的代码。第一个 block 包含“连接信息”线,打开一个 .udl 文件并创建一个 ADO.NET _Connection 引用,稍后用于调用查询方法。

enter image description here

这是第二个 block 的内部,带有“EXE”和粉红色电线进入其中的 block 。带有灰色边框的框的操作方式与“switch”语句非常相似。电线进入“?”这些盒子上的终端决定执行哪种情况。下拉出白色矩形的黄色框是调用节点和属性节点;它们接受对对象的引用,并允许您调用该对象的方法和读/写属性。您还可以在此处看到 _Recordset 对象。

enter image description here

这是下一个要执行的 block ,其图标为“FETCH ALL”。我们看到最左边执行的第一件事获取记录集的一些属性,并将它们返回到“结构”(进入读取“状态”的框的粉色线)中。这是代码失败的地方。在上一个 VI(虚拟仪器)中打开的记录集的状态为“已关闭”,紫色变体(在“读取所有可用数据”下可见)返回为空。

其余代码相当无关紧要,因为它只是将接收到的变体转换为可用数据,并释放之前打开的记录集引用。

我的问题是,为什么记录集查询的状态会是“已关闭”?我意识到,当查询不返回任何行时,记录集将“关闭”,但在 SSMS 中执行该查询会返回行。另外,执行 LabVIEW 代码会在查询中进行更新,因此我知道这也没有损坏。

有关此问题的任何指导将不胜感激。请随意询问有关 LabVIEW 的问题;我可以毫不费力地为您提供做出正确评估所需的尽可能多的信息。

最佳答案

我将其发布在 LabVIEW subreddit 上,结果发现数据库连接 VI 不太适合批量查询。我转而使用 OdbcConnection、OdbcCommand 和 OdbcDatareader 类的方法和属性来实现我想要的效果。如果您感兴趣的话,这是代码:http://i.imgur.com/fmDymyu.png

关于.net - 为什么此查询返回的记录集的状态为 "closed"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33003667/

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