以下代码总是不停的循环,不停下来,而且增加的都是重复的第一笔的值begin
qry1.Close;
qry1.SQL.Text:='select serial_number from sn_check where carton_no='''+edt1.Text+'''';
qry1.Open;
while not qry1.Eof do
 begin
  mmo1.Lines.Add(qry1.FieldValues['serial_number']);
  qry1.Next;
 end;
end;

解决方案 »

  1.   

    begin
    qry1.Close;
    qry1.SQL.Text:='select serial_number from sn_check where carton_no='''+edt1.Text+'''';
    qry1.Open;
    while not qry1.Eof do
     begin
      mmo1.Lines.Add(qry1.FieldValues['serial_number']);
      qry1.Next;
     end;
    end; 换个写法
    var
      i:Integer;
    begin
    qry1.Close;
    qry1.SQL.Text:='select serial_number from sn_check where carton_no='''+edt1.Text+'''';
    qry1.Open;
    qry1.First;
    for i=0 to qry1.RecordCount -1 do
     begin
       qry1.RecNo:= i; //如果你不确定别处是否改变了游标,这里重新定位即可。
       mmo1.Lines.Add(qry1.FieldValues['serial_number']);
     end;
    end; 
      

  2.   


    begin
    qry1.Close;
    qry1.SQL.Text:='select serial_number from sn_check where carton_no='''+edt1.Text+'''';
    qry1.Open;
    qry1.first;
    while not qry1.Eof do
     begin
      //输出消息框看一下变没变...
      showmessage(qry1.FieldValues['serial_number']); 
      qry1.Next;
     end;
    end;