`
txf2004
  • 浏览: 7132645 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

随机访问Recordset的一条记录

阅读更多
假设这个数据表有一个唯一的ID字段,并至少有一条记录。随机存取其中一条记录的方法是非常简单的,可以分为四步:
1、取得记录总数n。
2、把所有的ID号存储到一个数组中
3、产生一个不大于n的随机数m
4、从数组中取出第m个ID号,查询数据表,取得记录数据。
 下面是部分代码:
$#@60;%
set conn = Server.CreateObject(‘ADODB.Connection‘)
conn.open ‘$#@60;conn string$#@62;‘

‘ ***** (step 1) *****

set rs = conn.execute(‘Select count(id) from someTable‘)
rCount = rs(0)

‘ ***** (step 2) *****

set rs = conn.execute(“select id from someTable”)
cnt = 1
dim RRs
redim RRs(rCount)
do while not rs.eof
RRs(cnt) = rs(0)
cnt = cnt + 1
rs.movenext
loop

‘ ***** (step 3) *****

randomize
currentRR = cLng(rnd*rCount+0.5)
ID = RRs(currentRR)

‘ ***** (step 4) *****

sql = “select otherfield from someTable where id=” & ID
set rs = conn.execute(sql)
response.write “ID # ” & ID & “ = ” & rs(0)
rs.close: set rs = nothing
conn.close: set conn = nothing
%$#@62;
 对于SQL Server,还有更加有效率的方法。比如设计两个存储过程。我这里只是阐明一些思路,并希望这种思路可以同时用在Access和SQL Server中。
分享到:
评论

相关推荐

    Access数据库随机抽取记录条数.zip

    Access数据库是一种轻量级...SQL查询利用`TOP`和`ORDER BY NEWID()`或`RANK()`等函数,而VBA宏则通过编程方式实现随机访问。无论哪种方法,都可以根据实际需求灵活运用,帮助我们在处理大量数据时进行有效的抽样分析。

    SQL语句参考及记录集对象详解

    - **是否为最后一条记录**: `rs.EOF` —— 如果指针位于最后一条记录之后,则返回 True;否则返回 False。 ##### 3. 操作方法 - **删除当前记录**: `rs.Delete` —— 删除当前指针指向的记录。 - **新增一条记录**...

    精彩编程与编程技巧-VB处理数据库时求数据表记录总数的最佳方法...

    此方法同样采用了手动计数的方式,但通过`MoveLast`命令直接跳转到最后一条记录,从而避免了逐条记录的遍历过程。这种方法相对更加高效,尤其是对于大型数据集而言。然而,需要注意的是,这种方法假设记录集是可随机...

    常用SQL 查询

    - `rs.AbsolutePage = N`:将游标移动到第N页的第一条记录。 - `rs.PageSize = N`:设置每页记录数。 - `rs.PageCount = pageSize / 记录数`:计算总页数。 - `rs.RecordCount`:获取结果集中记录的总数。 - `...

    VB ADODB的小程序(代码)五.rar

    本压缩包中的小程序集成了几个关键功能,包括精确查找并排序、模糊查询并排序、随机提取多条记录以及统计记录总数,这些都是数据库操作中非常常见的需求。 首先,我们来看精确查找并排序。在VB ADODB中,可以使用...

    asp的分页制作的代码

    5. **显示记录**:`do while not rs.eof` 循环遍历Recordset中的记录,`rs.movenext`移动到下一条记录,然后显示或处理这些记录。 6. **错误提示**:当没有符合查询条件的记录时,显示相应的错误信息。 除此之外,...

    ASP中使用Set ors=oConn.Execute()时获取记录数的方法

    这是因为在默认情况下,`Execute`执行的RecordSet通常是向前只读的,意味着只能从第一条记录开始向前遍历,而不能倒退或随机访问,因此无法确定总记录数。 为了解决这个问题,可以使用`GetRows`方法来获取RecordSet...

    GUID生成源码,可做数据库主键

    在数据库设计中,特别是在关系型数据库中,GUID常被用作主键,确保每条记录都有独一无二的标识。这篇教程将深入探讨GUID的生成原理、使用场景以及在数据库中的应用。 首先,我们来理解GUID的生成机制。GUID由128位...

    2021-2022计算机二级等级考试试题及答案No.13477.docx

    - **知识点**: 当使用`APPENDBLANK`命令向数据库添加一条空白记录时,这条记录会被添加到最后的位置。如果当前库中有8条记录,且当前记录号为5,则添加新记录后的新记录号为9。 #### 5. Visual Basic代码执行结果 ...

    北大青鸟软件课程全部单词

    - **row**:行,表中的一条记录。 - **management**:管理,对资源或活动的控制和监督。 - **edition**:版本,产品的不同发行版。 - **transaction**:事务,一组必须一起成功或失败的操作。 - **analysis**:分析...

    2021-2022计算机二级等级考试试题及答案No.13700.docx

    2. 存储器分类:计算机的存储器分为内存储器(RAM,随机访问内存)和外存储器(如硬盘、SSD),内存储器是临时存储数据,断电丢失,而外存储器用于长期保存数据。 3. 计算机网络分类:局域网(LAN)、城域网(MAN)...

    基于ASP的飘花养生网源码.zip

    在ASP项目中,它可能代表数据库记录ID,用于唯一标识一条数据,或者是服务器生成的临时文件名。具体用途需要查看源代码才能确定。 【网页设计与布局】 ASP不仅仅处理后台逻辑,也与前端展示紧密相连。源码中应该...

    全国计算机四级数据库工程师历年真题及答案.doc

    将新插入的记录存储在文件末尾,并使记录随机地分布在文件物理存储空间中的文件结构是堆文件。 在数据库系统中,如果事务 T 要更新数据库中某表列的值,DBMS 在执行 T 时发现更新后的值超出了该列的值定义范围,...

    2021-2022计算机二级等级考试试题及答案No.14896.docx

    20. 生成随机整数:在Java中,使用`Math.random()`生成[0,1)之间的随机浮点数,通过适当转换可生成[20, 999]的随机整数,如`20 + (int)(Math.random() * 980)`。 以上就是从试题中提取出的计算机二级等级考试的相关...

    2021-2022计算机二级等级考试试题及答案No.18575.docx

    - 在 FoxPro 中,`DISP` 命令用于显示当前记录的内容,`DISPNEXT n` 命令用于显示下一个 `n` 条记录。 - `RECNO()` 函数返回当前记录的编号。 - 执行完上述命令序列后,当前记录编号为 `2`。 ### 11. 操作系统的...

    javascript网页特效实例大全

    4.17 每天显示一条不同的信息 81 4.18 模拟时钟 82 4.19 英文式的文本时钟 84 4.20 关闭页面时弹出时间警告框 85 4.21 显示在按钮上的时间 86 4.22 计算出生时间 88 4.23 计算几天后将是什么日期 92 第5章 ...

    Visual.Basic.6大学教程.pdf

    第15章 记录和随机存取文件 462 15.1 简介 462 15.2 随机存取文件 462 15.3 记录用户自定义类型 463 15.3.1 用户自定义类型的定义 463 15.3.2 操作用户自定义类型的成员 464 15.4 建立随机存取文件 465 15.5 向随机...

Global site tag (gtag.js) - Google Analytics