还是赋值问题,系统报错说
function TFrmChoose.Gen_Frequence2(mindate:string;maxdate:string;Candidate2:TA2Str;num_C2:integer; minsup:real;tiao:integer):boolean;
var
glagGen:boolean;
mstrSQL:string;
jilu:TAInt; //储存频数 array of integer
//k:integer;
t:integer;
k:integer;
q:integer;
large2:TA2str; //array of array of string类型
mstr1:string;
mstr2:string;
mstr3:string;
da:string;
das:string;
begin
ADOQuery2.Connection:=DMDAL.ADOCn;
da:=mindate ;
das:=maxdate;
setlength(jilu,num_C2);
glagGen:=true;
mstr3:='1';
t:=0;
for k:=0 to num_C2-1 do
begin
//ADOQuery2.Connection:=DMDAL.ADOCn;
mstr1:=Candidate2[k][0];
mstr2:=Candidate2[k][1];
mstrSQL:='select count(*) as cou '+
'from Deal ' +
'where '+ mstr1+'='+quotedstr(mstr3)+
' and '+ mstr2+'='+quotedstr(mstr3)+
' and '+
'dealdate>='+quotedstr(Da)+
' and '+
' dealdate<='+quotedstr(das);
with ADOQuery2 do
begin
close;
sql.Clear;
sql.Text:=mstrSQL;
Open;
if Fields[0].AsInteger<>0 then
begin
jilu[k]:=Fields[0].AsInteger;
t:=t+1;
end
else
begin
jilu[k]:=0;
end
end;
end;
系统运行到红色部分就报错说Read of Addrres
说明:Candidate2和num_C2都是全局变量,在调用这函数之前已经得到值了