asp-classic - ado.recordset "losing"字段

标签 asp-classic ado recordset

我正在开发一个古老的经典 asp 项目。数据库的结构非常糟糕,每一行都远远超出了限制(18 个不同的 nvarchar(2000)、大量的 nvarchar(256) 等等...)

我做了一个小修复,更改了从记录集中检索字段的顺序。

我现在所看到的让我感到困惑。当我使用其他字段时,最初存在的字段会消失。

例如,我有:

if(RS.Fields('field1').value){
   //do something
}
if((RS.Fields('field2').value){
   //do something
}

在我的一些结果中,检查时(在 field1 之后)field2 没有显示,但如果我在 field1 之前检查,它确实存在。

这是已知行为吗?有解决办法吗?

最佳答案

问题似乎有两个:

第一,字段在代码中出现的顺序需要与它们在数据库中的顺序相匹配。是的,不知道,但它有效。

第二,字段需要立即加载到变量中。

if(RS.Fields('f1')){
   doWork(RS.Fields('f1'));
}

不起作用,但是

var f1 = RS.Fields('f1');

if(f1){
   doWork(f1)
}

是的。

关于asp-classic - ado.recordset "losing"字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11991344/

相关文章:

sql-server - 执行存储过程时为"Operation is not allowed when the object is closed"

sql-server - SQL Server 数据库在本地时,ADO 客户端与服务器端游标的区别?

asp-classic - RecordSet,检查最后一条记录

email - 使用带有 CDOSYS 的 gmail smtp 服务器发送电子邮件时出错

asp.net - 经典 ASP 和 ASP.NET 集成

excel - ADO 和 DAO 的区别

excel - 使用 excel 宏返回所有 Access (.mdb) 表的列表

c++ - 我可以从函数返回 CRecordset 对象吗?

mysql - 记录集迭代

asp-classic - ASP - 使用函数参数引用记录集