ado.recordset“失去”字段

时间:2012-08-16 16:10:05

标签: asp-classic ado recordset

我正在研究一个古老的经典asp项目。数据库的结构非常糟糕,每行都超出限制(18种不同的nvarchar(2000),众多nvarchar(256),以及更多...)

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

我现在看到的东西让我神秘化了。当我使用其他字段时,最初存在的字段会消失。

例如,我有:

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

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

这是一种已知行为吗?有工作吗?

1 个答案:

答案 0 :(得分:2)

似乎问题有两个:

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

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

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

不起作用,但

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

if(f1){
   doWork(f1)
}

确实