怎样随机取数据表里的一个字段?我用的控件ADODataset1和Timer1,想用按钮来控制滚动显示在LABEL1上的记录
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Randomize;
  Label1.Caption:=IntToStr(Random(10));
end;
以上代码是随机取10以内的某个数字,但是随机取某个文本类型的字段内容怎么取呢?请高手指教,谢谢!

解决方案 »

  1.   

    你可以先用LIST 存放N个文本内容,然后用Random(N),再取第N条就可以了啊
      

  2.   

    得到记录总数n,然后用随机数产生一个记录号c,跟据记录号去内容不就完了
    c:=random(n-1);
      

  3.   


    ADODataSet1.Fields.Fields[Random(ADODataSet1.FieldCount)].AsString
      

  4.   

    怎么根据记录号取内容呢?是用SQL语句吗,怎么写呢?谢谢,给我个详细的代码吧
      

  5.   


    这个问题与标题不符啊,再回答你这个问题,使用ADODataSet1.Locate()函数把指定哪条记录为当前记录。
    function Locate(const KeyFields: String; const KeyValues: Variant; Options: TLocateOptions): Boolean; override;
      

  6.   

    只要能实现怎么都行,9楼的,用了你的ADODataSet1.Fields.Fields[Random(ADODataSet1.FieldCount)].AsString
    只显示的是第一条的记录呀
      

  7.   

    ADODataSet1.Open;
    Randomize;
    i := Random(ADODataSet1.RecordCount - 1);
    ADODataSet.RecNo := i;
    ShowMessage(ADODataSet.FieldByName('字段名称').AsString);
      

  8.   


    那就在前面加上一句:ADODataSet.RecNo := 8;//第8条记录
      

  9.   

    select * from tb1 order by newid(); //随机取记录 
      

  10.   

    ADODataSet1.Fields.Fields[Random(ADODataSet1.FieldCount)].AsString 
      

  11.   

    select   top   10   *   from   tables   order by newid();
      

  12.   

    ADODataSet1.Fields.Fields[Random(ADODataSet1.FieldCount)].AsString