这是一个很菜很菜的问题
我用QUERY取出了数据库中的很多记录
现在要将这些记录中的某一个字段赋值给某一个变量数组
数组个数肯定比记录数多,应该怎么赋值?

解决方案 »

  1.   

    var
      i:integer;
      aryData:array of string;
    begin
      setlength(aryData,Query.RecordCount)
      while Query.not eof do
      begin
        aryData[i]:=Query.FieldByName('FileName').asstring;
        Inc(i);
        Next;
      end;
    end;
      

  2.   

    我用的是adoquery
    var I: integer;
        str: array of string;
    begin
      with adoquery1 do
      begin
      close;
      sql.clear;
      sql.text := 'select ..';
      open;
      setlength(str,recordcount);
      for I := 0 to recordcount-1 do
       begin
        str[I] := fieldvalues[I];
       end;
      end;
    end;
      

  3.   

    在取数之前,首先
    query.First;以确保游标在第一条记录!其它的可以用楼上的办法!
      

  4.   

    我也是ado
    fieldvalues[I]怎么个意思?
    我的语句是这样的
           adoq_mune.First ;
            while not adoq_mune.Eof do
            begin
               sa_ml_name[i] :=adoq_mune.Fieldbyname('mod_name').asstring;
               i := i+1;
               adoq_mune.next;
            end;
    出错是在BEGIN下的一句出错
      

  5.   

    以下是我把某字段的内容加到listbox的方法,希望有点用
    with  ADOQuery1 do
     begin
     Close;
     sql.Clear;
     sql.Add('SELECT 名称 FROM delphi');
     Open;
     listBox1.Items.Clear;
       First;
       while not EOF do
         begin
           listbox1.Items.Add(FieldByName('名称').AsString);
           Next;
         end;
       listbox1.ItemIndex:=0;
       Close;
     end;
      

  6.   

    记录不多的话,我建议用ADOQuery
      

  7.   

    BDE  Query 中  RecordCount  计算速度比较慢