文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | firefox | WPS | 杀毒软件 | Picasa
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形图像 办公软件 媒体动画 精文荟萃 常用软件 网页编程 技术开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院办公软件AccessSQL Server和Access分别可取得随机记录
精品推荐
特别推荐
·帮你防止Access数据库被下载的九种方法
·几种修复ACCESS数据库的实用方法
·两个未被公开Access数据库方法使用技巧
·整理:防止Access数据库被下载的9种方法
·Access中利用拆分后端数据库保存不同数据
·有关ACCESS的数据库安全问题解答
·保护Access 2000数据库的安全方法
·Excel和Access间复制、导入和导出数据
·保护Access 2000数据库的安全
·Microsoft Access技巧及陷阱讲解
·更改Excel数据导入源文件的快捷方法
·在 Access 中使用“存储过程”
热点TOP10
·安全的Microsoft的ACCESS数据库加密方法
·如何使用制表控制器简化Access对表操作
·在 Access 中使用“存储过程”
·两个未被公开Access数据库方法使用技巧
·asp.net连接Access数据库
·用ASP和SQL语句动态的创建Access表
·整理:防止Access数据库被下载的9种方法
·中文Access2000速成教程--1.7 创建索引
·使用准则进行条件查询
·让select查询结果随机排序
·掌握部署 Access项目的方法
·access下的分页方案
·Access中利用拆分后端数据库保存不同数据
·帮你防止Access数据库被下载的九种方法
·关于Access数据库4种安全方式
·几种修复ACCESS数据库的实用方法
·关于用 SQL 得到 Access 的随机记录集
·在Access数据库中使用SQL Server语句
·把Access转成SQL数据库的方法介绍
·推荐:Access数据库安全中常见问题汇总

SQL Server和Access分别可取得随机记录

日期:2007年7月14日 作者: 查看:[大字体 中字体 小字体]


此段代码无论是速度、均衡性,还是随机度都非常好,也不会出现抽到重复记录的可能。

一、在SQL Server2000中生成随机记录的最好办法:

withtk_querydo

begin

Close;

sql.clear;

sql.Add('selecttop'+inttostr
(st_count)+'tk.ID,标准答案from题库表tk');

sql.Add('wherepidisnullandtk.题型=
'+quotedstr(tx)+'andtk.知识点='+quotedstr(zsd));

sql.add('andtk.难易度='+quotedstr(nyd)+
'andtk.课程号='+quotedstr(kcdm)+'orderbynewid()');

Open;

end;

注:关键就是orderbynewid()这条语句,随机因子就是从这里产生。

二、数据库为Access2000时生成随机记录的最好办法:

由于Access中没有newid()这一随机函数,故要想在Access中直接由SQL语句生成我们所希望的随机记录不太可能,因此我们只好在开发语言中生成合适SQL语句,让Access执行了。

//获取题库表中的随机ID,组成一个字符串,类似这样(3,8,2,25,49,1,7,10,6,83....)

//kcdm:课程代码,tx:题型,zsd:知识点,nyd:难易度,t_count:某一题型某一知识点某一难度下的要抽取的题量

functionTTest_Srv_RDataForm.Get_Random_ID
(constkcdm,tx,zsd,nyd,t_count:string):string;

var

sl:TStrings;

i,ii,kk:integer;

begin

try

Result:='';

sl:=TStringList.Create;

withTADOQuery.Create(nil)do

begin

try

Connection:=Adoconnection1;

SQL.Text:='selectIDfrom题库表
wherepidisnulland题型='+quotedstr(tx)+

'and知识点='+quotedstr(zsd)+'and难易度='+quotedstr(nyd)+

'and课程号='+quotedstr(Kcdm);

Open;

whilenotEofdo

begin

sl.Add(Fields[0].AsString);

Next;

end;

Close;

finally

Free;

end;

end;//endwith....

ifsl.Count=0then

Exit;

fori:=0toStrToIntDef(t_count,0)-1do

begin

kk:=sl.Count;//随机因子

Randomize;

ii:=Random(kk);//取得随机数

ifResult=''then

Result:=sl.Strings[ii]

else

Result:=Result+','+sl.Strings[ii];

sl.Delete(ii);
//为了避免有可能出现的重复,此ID被抽取过后把它删了

ifsl.Count=0then
//如果无题可抽了退出循环

Break;

end;

Result:='('+Result+')';
//给结果串前后加上(......),最终形成(24,36,5,89,72,3,6,1....)的串样

finally

sl.Free;



end;

end;

//=================课程号,题型,知识点,难易度,题量

functionTTest_Srv_RDataForm.Get_Random_Sql
(constkcdm,tx,zsd,nyd,t_count:string):string;

begin

Result:=Get_Random_ID(kcdm,tx,zsd,nyd,t_count);

ifResult<>''then

Result:='selecttop'+t_count+'tk.ID,
标准答案from题库表tkwhereidin'+Result

else

Result:='selecttop'+t_count+'tk.ID,
标准答案from题库表tkwhere1=1';

end;

//以下为调用上述函数生成随机抽题的代码片断

.......

withtk_querydo

begin

Close;

sql.Clear;

sql.Text:=Get_Random_Sql(Kcdm,tx_str,zsd_str,nyd_str,txzsd_count_str);

Open;
end;

(出处:清风下载学院






上一篇:教你如何读取Excel数据并导入DB2数据库

下一篇:数据库中三大问题约束、CASE语句和文件

SQL Server和Access分别可取得随机记录 相关文章:
·扑克牌的发牌程序(用伪随机数实现)
·音量控制 随心所欲
·窗体控件大小随窗体大小变化而变化
·Windows NTFS分区随心转换
·MSN好友IP地址随便查
·Flash教程:制作随机画圆弧动画
·哪些星座注定今生相遇相随????
·随时更新QQ滔滔的技巧
·ASP.NET随机码生成示例
·随心所欲的修改文件默认保存位置
SQL Server和Access分别可取得随机记录 相关软件:
·使用GPMC随心所欲管理组策略
·张学良与随军夫人谷瑞玉
·《PS经典设计100》随书光盘中PHOTOSHOP资源
·随心智能升级V3.2
·新概念英语词汇随身听手册 2mp3
·实用-智能随机数生成器
·随心彩票助手V1.2
·新概念全套 exe 随课文配有清晰的语音跟读
·vqqq.com搜索排行随时更新源码
·新概念英语词汇随身听速记手册1

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:vipcn