如何生成随机数数据库

如何生成随机数数据库,第1张

首先要引用ADO对象,打开菜单“工程-引用”,选择“Microsoft ActiveX Data Objects 2.0 Library”将其沟选,这样就可以进行声明ADO对象了

Dim cnn As New ADODB.Connection 'ADO连接对象

Dim Collection As ADODB.Recordset 'ADO记录集对象

Dim Cnt As Integer '计算产生随机数的个数

Dim No() As Integer '动态数组存放所有产生的随机数字

Private Sub Command1_Click()

Form_Unload (True) '调用窗体的卸载事件

End Sub

Private Sub Form_Load()

cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0Data Source=" App.Path "\Collection.mdb"

'打开数据库连接,驱动程序Microsoft.Jet.OLEDB.4.0,数据源为当前目录下的Collection数据库

Set Collection = New ADODB.Recordset

'申请一个新的Collection记录集对象

Collection.Open "select * from tab", cnn, adOpenKeyset, adLockOptimistic

'打开记录集对象

End Sub

Private Sub Form_Unload(Cancel As Integer)

Dim i As Integer

If Cnt

简单点实现可以在表中使用GUID,并自动生成,取数据时以此字段排序,使用完再更新此字段,10分钟的判断则通过加一个时间栏位就红了。基本保证是随机的。步骤如下:

建个测试表,假定tData是你需要的字段,tGUID、tUseTime为必须字段且不可为空

CREATE TABLE [dbo].[tbaidu_t1](

 [tGUID] [uniqueidentifier] NOT NULL,

 [tUseTime] [datetime] NOT NULL,

 [tData] [int] NOT NULL

) ON [PRIMARY]

GO

ALTER TABLE [dbo].[tbaidu_t1] ADD  CONSTRAINT [DF_tbaidu_t1_tGUID]  DEFAULT (newid()) FOR [tGUID]

GO

ALTER TABLE [dbo].[tbaidu_t1] ADD  CONSTRAINT [DF_tbaidu_t1_tUseTime]  DEFAULT (getdate()) FOR [tUseTime]

GO

2. 新建一个存储过程

CREATE PROC usp_tbaidu_GetRandData

AS

-- 选取指定数据  

SELECT TOP 3 * FROM tbaidu_t1 

WHERE datediff(MI,tUsetime,GETDATE())>4

ORDER BY tGUID

-- 更新已选择数据的时间栏位 

UPDATE tbaidu_t1 SET tUseTime = GETDATE()

WHERE tGUID IN(

 SELECT TOP 3 tGUID FROM tbaidu_t1 

WHERE datediff(MI,tUsetime,GETDATE())>4

ORDER BY tGUID

--更新所有数据对应的fGUID字段 

UPDATE tbaidu_t1 SET tGUID = NEWID()

3.执行存储过程就好了

EXEC usp_tbaidu_GetRandData


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10063858.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存