高手快来帮忙看看!这个数组用的有什么问题?

runmin(runmin.vicp.net):大哥,你好。我用Js写服务器端脚本,又出现一个问题,万思不得其解,请帮忙!

var A=new Array(14);
for(t=0;t<14;t++)A[t]=0;
if(matRs.RecordCount!=0) //此处 matRs 已经有数据!
{
A[0]=matRs(0);A[1]=matRs(1);A[2]=matRs(2);A[3]=matRs(3);

sql1="select mattype,matname,spec,unit,nvl(sum(amount),0) as amount from materialin where mattype='"+rs(1)+"' and matname='"+matRs(0)+"' and spec='"+matRs(1)+"' and unit='"+matRs(2)+"' and to_char(matmap(indate),'yyyy-mm')<=to_char(add_months(matmap(to_date("+dateStr+",'yyyy-mm-dd')),-1),'yyyy-mm') group by mattype,matname,spec,unit";

if(myRs.state==1)myRs.Close();
myRs.Open(sql1,conn);
if(myRs.RecordCount!=0)A[4]=myRs("amount");

Response.Write(sql1+"

1<br/>

1

1<br/>

")
Response.Write(A[4]+"

1<br/>

")

sql1="";

sql1="select mattype,matname,spec,nvl(sum(amount),0) as amount from matusedept where mattype='"+rs(1)+"' and matname='"+matRs(0)+"' and spec='"+matRs(1)+"' and to_char(matmap(outdate),'yyyy-mm')<=to_char(matmap(add_months(to_date("+dateStr+",'yyyy-mm-dd'),-1)),'yyyy-mm') group by mattype,matname,spec";

if(myRs.state==1)myRs.Close();
myRs.Open(sql1,conn);

Response.Write(A[4]);//此处报错 ADODB.Field 错误 '80020009'

对象不再有效。

if(myRs.RecordCount!=0)A[4]=A[4]-myRs.Fields("amount");

Response.Write(sql1+"

1<br/>

5

1<br/>

")
Response.Write(A[4]+"

1<br/>

")

很茫然,为什么 A[4] 在这里就不能使用了呢???????sql语句输出均可以通过!

---------------------------------------------------------------

你用的什么数据库?
nvl是个什么函数?返回的是什么类型的数据?

你可以试一下

if(myRs.RecordCount!=0)A[4]=myRs("amount");

==>

if(myRs.RecordCount!=0)A[4]=myRs("amount").toString();

---------------------------------------------------------------

首先你将

if(myRs.RecordCount!=0)A[4]=myRs("amount");

==>

if(myRs.RecordCount!=0)A[4]=12345;

or

if(myRs.RecordCount!=0)A[4]="12345";

如果问题依旧,就不是数据类型的问题,检查程序逻辑

Published At
Categories with Web编程
comments powered by Disqus