我正在研究一个古老的经典asp项目。数据库的结构非常糟糕,每行都超出限制(18种不同的nvarchar(2000),众多nvarchar(256),以及更多...)
我做了一个小修改,它改变了从记录集中检索字段的顺序。
我现在看到的东西让我神秘化了。当我使用其他字段时,最初存在的字段会消失。
例如,我有:
if(RS.Fields('field1').value){
//do something
}
if((RS.Fields('field2').value){
//do something
}
在我的一些结果中,field2在检查时没有显示(在field1之后),但如果我在field1之前立即检查,它确实存在。
这是一种已知行为吗?有工作吗?
答案 0 :(得分:2)
似乎问题有两个:
一,字段在代码中出现的顺序需要与它们在DB中的顺序相匹配。是的,不知道,但它确实有效。
二,字段需要立即加载到变量中。
if(RS.Fields('f1')){
doWork(RS.Fields('f1'));
}
不起作用,但
var f1 = RS.Fields('f1');
if(f1){
doWork(f1)
}
确实