我正在开发一个古老的经典 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/