怎样 把 查询出的数据结果,一次读到控件中:
procedure TF_student.TabSheet4Show(Sender: TObject);
begin
    with adoqsjingli do
    begin
    Close;
    SQL.Clear;
    SQL.Text:='select * from stu_jingli where sjno='+quotedstr(edit4.Text);
    open;
    //if not adoqstijian.eof  then
    //begin
    maskedit14.Text:=adoqsjingli.FieldByName('rudata').asstring;
    maskedit15.Text:=adoqsjingli.FieldByName('bidata').asstring;
    edit22.Text:=adoqsjingli.FieldByName('schooladdress').asstring;
    //doqstijian.next;
    //end; //
    //while not adoqs.eof  do
    //begin
    maskedit16.text:=adoqsjingli.fieldbyname('rudata').asstring;
    maskedit17.Text:=adoqsjingli.fieldbyname('bidata').asstring;
    edit23.Text:=adoqsjingli.fieldbyname('schooladdress').asstring;
   // qstijian.next;
    //end;
  end;
 一表为学生经历表:学生号,入学时间,毕业时间,所在学校及见证人 等四个字段。
一个学生 都有 好几条,我想把结果放到 maskedit 中。
  入学时间   毕业时间  所在学校及见证人
maskedit15   maskedit17  edit22
maskedit16   maskedit18  edit23
 这样 依次排列:急。请教各位了。

解决方案 »

  1.   

    楼主是想把一个同学的N条信息循环显示吗?
    用 timer 应该可以,如果只是一次显示一遍容易的多,如果要循环,就要先把这个学生的信息存储下来,用数组或者链表都可以。
      

  2.   

    何必用线程呢。
    搞一个过程就行了。
    procedure SetEditText(ADOQuery1: TADOQuery;aMaskEdit:TCustomEdit;bMaskEdit:TCustomEdit=nil;cMaskEdit:TCustomEdit=nil;dMaskEdit:TCustomEdit=nil);
    begin
      if aMaskEdit is TCustomEdit then
       TCustomEdit(aMaskEdit).Text:=ADOQuery1.fieldByName('×××').AsString;
      //其余的就不详细写了
    end;---调用
    procedure TForm1.Button1Click(Sender: TObject);
    begin
     if ADOQuery1.IsEmpty then Exit;
     while not ADOQuery1.Eof do
     begin
       SetEditText(ADOQuery1,MaskEdit1,MaskEdit2,MaskEdit3);//-----此处对于MaskEdit的设置在于自己程序的控制,建议用控件数组
       ADOQuery1.Next;
     end;
    end;
      

  3.   

    不知你的那些edit控件是否是动态创建的?for i:= 0 to  adoquery1.recordcount-1 do
    begin
    ...........//这里循环存放你的信息。
    end;不过,非常不明白为什么要用那么多edit控件显示学生教育经历信息。