procedure TfrRevQuery.FormShow(Sender: TObject);
begin
  DM.cdsTempQuery.Close;
  DM.cdsTempQuery.CommandText:='select * from tabresv';
  DM.cdsTempQuery.Open;
  DM.cdsTempQuery.First;
  if Not DM.cdsTempQuery.Eof then
  begin
    ComboBox1.Items.Add(DM.cdsTempQuery.fieldbyname('crsvid').AsString);
    DM.cdsTempQuery.Next;
  end;
  ComboBox1.ItemIndex:=0;
end;为什么程序运行后在ComboBox1控件中只有一条记录(数据库里有很多记录的)

解决方案 »

  1.   

    if Not DM.cdsTempQuery.Eof then
    改成
    while not DM.cdsTempQuery.Eof do
      

  2.   

    肯定只有一条记录(ComboBox1)你应该使用for循环或while循环才是
      

  3.   

    procedure TfrRevQuery.FormShow(Sender: TObject);
    begin
      DM.cdsTempQuery.Close;
      DM.cdsTempQuery.CommandText:='select * from tabresv';
      DM.cdsTempQuery.Open;
      DM.cdsTempQuery.First;
      while Not DM.cdsTempQuery.Eof then
      begin
        ComboBox1.Items.Add(DM.cdsTempQuery.fieldbyname('crsvid').AsString);
        DM.cdsTempQuery.Next;
      end;
      if ComboBox1.Items.Count>0 then
        ComboBox1.ItemIndex:=0;
    end;
      

  4.   

    对用
    while Not DM.cdsTempQuery.Eof then
      begin
        ComboBox1.Items.Add(DM.cdsTempQuery.fieldbyname('crsvid').AsString);
        DM.cdsTempQuery.Next;
      end;
      

  5.   

    procedure TfrRevQuery.FormShow(Sender: TObject);
    begin
      DM.cdsTempQuery.Close;
      DM.cdsTempQuery.CommandText:='select * from tabresv';
      DM.cdsTempQuery.Open;
      DM.cdsTempQuery.First;
      while Not DM.cdsTempQuery.Eof do
      begin
        ComboBox1.Items.Add(DM.cdsTempQuery.fieldbyname('crsvid').AsString);
        DM.cdsTempQuery.Next;
      end;
      if ComboBox1.Items.Count>0 then
        ComboBox1.ItemIndex:=0;
    end;