gpt4 book ai didi

javascript - ASP ADO recordset.NextRecordset() 在没有下一个记录集时中断

转载 作者:行者123 更新时间:2023-12-03 10:47:30 26 4
gpt4 key购买 nike

我正在使用 Javascript 在 ASP 中编写脚本,并且需要循环遍历不确定数量的记录和记录集。我循环浏览各个记录没有问题。当我需要移动记录集时,问题就出现了。只要有另一个记录集就可以正常工作。如果没有更多的记录集,代码就会终止,并且似乎无法检查或捕获错误。我已经完成了 try/catch block 以及我能想到的所有测试,但代码只是中断并给出了内部服务器错误。我希望缺少一个 isNextRecordset()isLastRecordset() 函数。

我当前的代码

do{
//Some Code Stuff

record = record.NextRecordset(); //Dies here when no more recordsets

}while(!!record);

使用普通的 VBScript,他们显示此方法有效(但从未尝试过)。但我不想使用 VBScript。

VBScript 代码

Do Until record = Nothing

set record = record.NextRecordset
Loop

编辑:我相信我通过添加循环使事情变得困惑,如果您删除循环并在没有下一个记录集时仅调用一次 nextrecordset 它仍然会死掉。不需要对 null 进行测试。我的代码未通过 null 测试。

//Get A recordset
//There is only one recordset
record = cmd.Execute();

//Do some stuff with the record set

//Call NextRecordset
//even though there are no more
record = record.NextRecordset(); //<--- Still Dies right here

编辑:只是想指出我遇到的隐藏问题。下面的答案是正确的,但不是我的实际问题。我看到的一些教程显示了如下所示的结构。关闭记录和连接。但当记录触底时,它已经null,这是一个问题。通过显示正确的错误消息可以很容易地解决这个问题,而我没有。我自己的愚蠢,但可能会帮助别人。

try{

//Do Some Stuff

record = record.NextRecordset();

//Test Record set

}catch(e){

}finally{
record.Close(); <---- This is where it was actually having a problem.
record = null;
myconn.Close();
myconn = null;
}

最佳答案

正确的语法是:

while (record) {
//Some Code Stuff

record = record.NextRecordset();
}

这样,当 NextRecordset() 返回 null 时,循环就会停止。

关于javascript - ASP ADO recordset.NextRecordset() 在没有下一个记录集时中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28517989/

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