赐教>>随机生成指定范围内不重复的产品编号

yanminqiang 2007-06-09 09:10:52
随机生成一个7000-8000一个范围内一个产品编号

比如生成出7032,要判断出数据库(假设表名product,编码列名为code)时候该产品编号已经存在则要继续随机生成一个数字,直至系统不存在该产品编号为止。

高手赐教哦。
...全文
188 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yanminqiang 2007-06-10
  • 打赏
  • 举报
回复
谢谢赐教哦,不过这种如果我的编号很多的话那数组的长度很长,这样是不是有所限制,或者说搜索是否存在这个编号的速度会收到影响。
jiewenxu 2007-06-09
  • 打赏
  • 举报
回复
这让我想起我以前谢谢的一个点卡生成的东西。。。

Dim Sql,Rs,DataArray,SearchArray(),i

'查询数据库
Sql="Select Code From [Product]"
Set Rs=Conn.Execute(Sql)
If Rs.Bof And Rs.Eof Then
Sql="Insert Into Product(Code) Values("& GetRnd() &")"
Conn.Execute(Sql)
Else
DataArray=Rs.GetRows(-1)
ReDim SearchArray(Ubound(DataArray,2))
For i=0 To Ubound(SearchArray)
SearchArray(i) = "|"& DataArray(0,i) &"|"
Next
DataArray=Null
Call Insert()
End If

Function GetRnd()
Dim N,upperbound,lowerbound
Randomize() '初始化
lowerbound=7000
upperbound=8000
N=Int((upperbound - lowerbound + 1) * Rnd(Now()) + lowerbound)
GetRnd=N
End Function

Sub Insert()
Dim N
N=GetRnd()
'数据库中存在数据
If Ubound(Filter(SearchArray,"|"& N &"|",True,1))>=0 Then
Call Insert()
Else
Sql="Insert Into Product(Code) Values("& N &")"
Conn.Execute(Sql)
End If
End Sub

有点复杂,不过这东西在大型数据库中时效率很高

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧