我在SQl数据库中有若干条试题记录(分成若干类型)。请问如何随机的抽取每中类型的试题各5条,并将它们加入到richedit控件中。试题的字段类型为var char.请各位高手指点。分数不够我另加(我的分已不多了,呵呵)。

解决方案 »

  1.   

    1﹑為每一試題編號。(從0------N)
    2﹑使用random(N)隨機取出(0----N)之間的一個數即為試題編號。
    3﹑注意要去掉重復的編號
      

  2.   

    不知我应该用什么方式和什么控件将试题加入到richedit中啊?
    Tquery or Ttable?用那个属性和方法?
    各位大哥说清楚点行吗?
      

  3.   

    richedit.text:=query1.fielbyname(filename).assstring;
      

  4.   

    我刚学delphi,请大家不要见笑,看看下面的代码错在什么地方:
    procedure TForm3.Button1Click(Sender: TObject);
    var
      //count: array of integer;
      m,n,i,j:integer;
    begin
       Label1.Caption:='正在抽题...';
        for i:=1 to 10 do
            begin
              with query1 do
                begin
                  query1.Close;
                    with query1.sql do
                      begin
                        query1.sql.Clear;
                        query1.sql.Add('select * from problem where tno=:no');
                        query1.ParamByName('no').AsString:=inttostr(i);
                      end;
                   query1.Open;
                   if not(query1.Eof) and not(query1.bof) then
                      begin
                        n:=query1.RecordCount;
                        for j:=1 to 5 do
                          begin
                            m:=Random(n);
                            with query1 do
                              begin
                                query1.Close;
                                with  query1.SQL do
                                  begin
                                    sql.Clear;
                                    sql.Add('select pcon,pan from problem where pno=:s');
                                    query1.ParamByName('s').AsString:=inttostr(m);
                                  end;
                                    query1.Open;
                                    richedit1.Text:=query1.Fields[6].AsString;
                                    richedit2.Text:=query1.Fields[7].AsString;
                              end;
                          end;
                      end;
                end;
            end;
          showmessage('ok!');  
    end;