我希望直接从access数据库中读数据,用一个数组表达出来,然后在memo中显示,我下面的语句
在哪有问题?各位兄弟姐妹,大哥哥大嫂嫂们帮忙诊断一下,感激不尽!在线等待啊
var
i:integer;
str:string;
aa:array of double;
begin
str:='select z from dj_xmg_zv';
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(str);
adoquery1.Open;
adoquery1.First;
setlength(aa,adoquery1.RecordCount);
for i:=0 to adoquery1.RecordCount-1
do begin
aa[i]:=adoquery1.FieldValues['z'];
adoquery1.Next;
end;
memo1.Lines.Add(floattostr(aa[i]));
在哪有问题?各位兄弟姐妹,大哥哥大嫂嫂们帮忙诊断一下,感激不尽!在线等待啊
var
i:integer;
str:string;
aa:array of double;
begin
str:='select z from dj_xmg_zv';
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(str);
adoquery1.Open;
adoquery1.First;
setlength(aa,adoquery1.RecordCount);
for i:=0 to adoquery1.RecordCount-1
do begin
aa[i]:=adoquery1.FieldValues['z'];
adoquery1.Next;
end;
memo1.Lines.Add(floattostr(aa[i]));
do begin
aa[i]:=adoquery1.FieldValues['z'];
adoquery1.Next;
end;
---------------------------
改成 while not adoquery1.Eof do
begin
aa[i]:=adoquery1.fields[0].asstring;//因为你只select了一个字段
adoquery1.Next;
end;
试试
while not adoquery1.Eof do
begin
memo1.lines.add(adoquery1.fields[0].asstring);
adoquery1.Next;
end;
do begin
aa[i]:=adoquery1.FieldValues['z'];
adoquery1.Next;
memo1.Lines.Add(floattostr(aa[i]));
end;
i:integer;
str:string;
aa:array of double;
begin
str:='select z from dj_xmg_zv';
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(str);
adoquery1.Open;
adoquery1.First;
setlength(aa,adoquery1.RecordCount);
i:=0; //循环前记得初始
for i:=0 to adoquery1.RecordCount-1 do
begin
aa[i]:=adoquery1.FieldValues['z'];
adoquery1.Next;
memo1.Lines.Add(floattostr(aa[i])); //每条记录都要add 放在循环外 只add最后一条
end;
aa.free; //aa 用完之后释放
end;