DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: lixuan123
今日帖子: 0
在线用户: 3
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 yangzh (喜羊羊) ★☆☆☆☆ -
盒子活跃会员
2003/12/12 19:42:43
标题:
以Access为数据库写一个中奖程序,如何从数据库中一次随机抽出多条记录。 浏览:1856
加入我的收藏
楼主: 以Access为数据库写一个中奖程序,如何从数据库中一次随机抽出多条记录。
----------------------------------------------
DELPHI家园QQ群:186629229
作者:
男 miaomiao (miaomiao) ★☆☆☆☆ -
普通会员
2003/12/12 20:50:54
1楼: 用select语句应该可以吧
----------------------------------------------
-
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2003/12/12 21:02:48
1楼: procedure TForm1.Button1Click(Sender: TObject);
var
 k,i,j,m:Longint;
 s,t:string;
begin
 Randomize;
 k:=  random(listbox1.Items.Count div 2 + 1);//抽的个数随机
 if k=0 then k:=2;
 listbox2.Items.Clear ;
 for i:=1 to k   do
   begin
      m:= random(listbox1.Items.Count);
      s:=listbox1.Items.Strings[m];
      if listbox2.Items.IndexOf (s)<0 then
         listbox2.Items.Add(s); 
   end;
end;
只是模拟一下算法!
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
男 yangzh (喜羊羊) ★☆☆☆☆ -
盒子活跃会员
2003/12/12 22:00:05
2楼: 说明一下。
----------------------------------------------
DELPHI家园QQ群:186629229
作者:
男 hotyei (青出于蓝) ★☆☆☆☆ -
盒子活跃会员
2003/12/13 8:58:24
3楼: procedure GetNumber(DataSet : TDataSet);
const
  COUNT = 5; //产生5个号码
var
  i : Integer;
begin
  Randomize;
  ListBox1.Items.Clear;

  for i := 0 to COUNT -1 do
  begin
  DataSet.RecNo := Random(DataSet.RecordCount -1);
    ListBox1.Items.Add(DataSet.FieldByName('Number').AsString);

    //要使用缓冲或事务,不然真会删除掉
    DataSet.Delete;
  end;
end;
----------------------------------------------
米软科技有限公司http://www.szmesoft.com
作者:
男 yangzh (喜羊羊) ★☆☆☆☆ -
盒子活跃会员
2003/12/13 9:25:26
4楼: DataSet.RecNo := Random(DataSet.RecordCount -1);这句什么意思。
----------------------------------------------
DELPHI家园QQ群:186629229
作者:
男 hotyei (青出于蓝) ★☆☆☆☆ -
盒子活跃会员
2003/12/13 9:28:48
5楼: 就是在数据库中随机定位,DataSet.RecordCount就是数据库的总记录数。
----------------------------------------------
米软科技有限公司http://www.szmesoft.com
作者:
男 yangzh (喜羊羊) ★☆☆☆☆ -
盒子活跃会员
2003/12/13 13:05:50
6楼: procedure GetNumber(DataSet : TDataSet);
const
  COUNT = 500; //产生500个号码
var
  i : Integer;
begin
  Randomize;
  ListBox1.Items.Clear;

  for i := 0 to COUNT -1 do
  begin
  DataSet.RecNo := Random(DataSet.RecordCount -1);
    ListBox1.Items.Add(DataSet.FieldByName('Number').AsString);

    //要使用缓冲或事务,不然真会删除掉
    DataSet.Delete;
  end;
end;
  出现如下错误
此帖子包含附件:
JPEG 图像
大小:21.5K
----------------------------------------------
DELPHI家园QQ群:186629229
作者:
男 hotyei (青出于蓝) ★☆☆☆☆ -
盒子活跃会员
2003/12/14 17:00:12
7楼: DataSet.RecNo := ABS(Random(DataSet.RecordCount -1))+1;

试试!
----------------------------------------------
米软科技有限公司http://www.szmesoft.com
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行80.07813毫秒 RSS