Asp classic ado.recordset";“失去”;领域

Asp classic ado.recordset";“失去”;领域,asp-classic,ado,recordset,Asp Classic,Ado,Recordset,我在做一个经典的asp项目。数据库的结构非常糟糕,每一行都远远超出了限制(18个不同的nvarchar(2000),许多nvarchar(256),等等) 我做了一个小的修正,改变了从记录集中检索字段的顺序 我现在看到的让我感到困惑。当我使用其他字段时,最初确实存在的字段将消失 例如,我有: if(RS.Fields('field1').value){ //do something } if((RS.Fields('field2').value){ //do something }

我在做一个经典的asp项目。数据库的结构非常糟糕,每一行都远远超出了限制(18个不同的nvarchar(2000),许多nvarchar(256),等等)

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

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

例如,我有:

if(RS.Fields('field1').value){
   //do something
}
if((RS.Fields('field2').value){
   //do something
}
在我的一些结果中,字段2在选中时不显示(在字段1之后),但如果我在字段1之前立即选中,它确实存在


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

问题似乎有两个方面:

第一,字段在代码中的显示顺序需要与它们在数据库中的顺序相匹配。是的,我不知道,但它很管用

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

if(RS.Fields('f1')){
   doWork(RS.Fields('f1'));
}
不起作用,但是

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

if(f1){
   doWork(f1)
}

是的。

Access数据库存在已知问题,而该问题本来就不打算在web环境中使用。记录在案,“罪魁祸首”是nvarchar(2000)或任何长度超过256的字段-经典ASP在处理此类字段时遇到问题。哦,我的天啊,我也很不幸在经典ASP项目中工作,并遇到了同样的问题。按DB中的顺序排列变量赋值可以解决我的问题。哇??!