用ASP数据库生成序列号不重复

复制代码代码如下所示:
*************************************************
功能名称:getmaxorder
效果:获取最大的序列号
参数:字段名在序列号表字段名称
听---序号名称
字段名表中的字段名
返回值:字段的最大值
电话功能:idadd:看到效果
*************************************************
功能getmaxorder(字段名、表名,tablefilename)
昏暗的-ORDERNO.,orderrs,testrs
集testrs = server.createobject(ADODB。记录集)
集orderrs = server.createobject(ADODB。记录集)
firstno =年(日期)右(0 月(日)),2)
ordersql =SELECT * FROM fieldmaxvalue在字段名=中
orderrs.open ordersql,Conn,3
如果不orderrs.eof然后
orderrs(fieldmaxvalue )= orderrs(fieldmaxvalue )
-ORDERNO. = orderrs(fieldmaxvalue )
如果左(-ORDERNO.,6)= firstno然后
-ORDERNO. = idadd(-ORDERNO.)
其他的
firstno -ORDERNO. =00001
最后如果
其他的
orderrs.addnew
orderrs(字段名字段)=
firstno -ORDERNO. =00001
最后如果
testrs.open选择最大(tablefilename )从表,tablefilename喜欢firstno
如果(不testrs。EOF)和testrs(0)。值> -ORDERNO.然后
-ORDERNO. = idadd(testrs(0)。值)
最后如果
testrs.close
集testrs =没有
orderrs(fieldmaxvalue )= -ORDERNO.
orderrs.update
orderrs.close
集orderrs =没有
getmaxorder = -ORDERNO.
端功能

*************************************************
功能名称:idadd
作用:添加一个:例如,idadd(5 )=6
如果数字在9之后,如果小写字母在z后过期,
如果大写字母是z,其余的将在后面加上1。
参数:id——要添加的数字
返回值:一个增加的数字
呼叫功能:增加1数的增加增加1(5 )=6
增加1(Z)=
*************************************************
函数的AddOne(一)
昏暗的tempfirst
增加1 =第一
intfirst = ASC(第一)
如果(intfirst和> = 48 intfirst = 65和intfirst = 97和intfirst<122)
AddOne = Chr (intfirst + 1)
退出功能
最后如果
如果(intfirst = 57)然后
增加1 =0
退出功能
最后如果
如果(intfirst = 90)然后
增加1 =
退出功能
最后如果
如果(intfirst = 122)然后
增加1 =
退出功能
最后如果
端功能
功能idadd(ID)
昏暗的前面,后面,strfind,strbackfind,idlen,tempid
如果ID = 或空(ID)然后
iddadd = 1
退出功能
最后如果
tempid = ID
idlen = Len(ID)
我idlen = 1
前左(ID,idlen =我)
右(id,I - 1)
strfind =中(ID,idlen + 1,1)
strbackfind =增加1(strfind)
ID =前strbackfind回来
如果strfind < strbackfind然后
退出
最后如果
如果strfind > strbackfind然后
如果我idlen然后
id1
其他的
如果中期(ID,idlen -我,1)=增加1(MID(ID,idlen -我,1))然后
ID =前strbackfind回1
退出
最后如果
最后如果
最后如果
下一个
如果ID = tempid然后
id1
最后如果
idadd = ID
端功能

调用的例子
serviceno = getmaxorder(serviceno

所有字段的结构保存序列号的最大表:
表格名称:fieldmaxvalue
领域
fieldmaxvalue ID字段名