asp中用数据库生成不重复的流水号
在ASP中,使用数据库生成不重复的流水号是一个常见的需求。这种流水号通常用于标识每一条记录的唯一性。下面是一个简单的实现代码示例,你可以参考这个实现原理在其他程序中应用。
我们需要建立一个数据库表来存储已经生成的流水号。假设我们有一个名为"SerialNumbers"的表,其中有一个名为"SerialNum"的字段用于存储流水号。
在ASP中,我们可以使用以下代码来生成新的流水号并将其添加到数据库中:
```asp
<%
' 连接数据库
Dim conn, sql
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=你的数据库路径;"
' 定义SQL查询语句
sql = "SELECT COUNT() FROM SerialNumbers"
' 执行查询并获取结果
Dim rs
Set rs = conn.Execute(sql)
Dim lastSerialNum As Integer
If Not rs.EOF Then
lastSerialNum = rs("COUNT()") + 1 ' 获取最后一个流水号并加1生成新的流水号
Else
lastSerialNum = 1 ' 如果没有流水号记录,则初始化为1
End If
rs.Close
Set rs = Nothing
' 生成新的流水号并将其添加到数据库
sql = "INSERT INTO SerialNumbers (SerialNum) VALUES (" & lastSerialNum & ")"
conn.Execute(sql)
conn.Close ' 关闭数据库连接
Set conn = Nothing
%>
```
函数名称:`getMaxOrder`
功能:获取最大序列号
参数:
fieldName:序列号表中的字段名
tableName:序列号所在表名
tableFileName:表中的字段名
返回值:字段的最大值
调用示例:
`serviceNO=getMaxOrder("serviceNO","service","serviceNO")`
(其中,用于保存所有字段流水号最大值的表结构为:表名:fieldMaxValue,字段包括:id、fieldName、fieldMaxValue)
函数流程:
1. 创建两个记录集对象 `orderRS` 和 `testRS`。
2. 使用当前日期生成一个初始序列号 `firstNO`。
3. 通过SQL查询从 `fieldMaxValue` 表中获取现有序列号信息。
4. 判断获取的序列号信息是否与当前日期匹配,并根据匹配结果生成新的序列号 `orderNO`。
5. 使用 `testRS` 记录集查询当前表中的最大序列号。
6. 根据查询结果更新 `orderNO`,确保其为当前表中的最大序列号。
7. 更新 `fieldMaxValue` 表中的值并关闭记录集。
8. 返回最终的序列号 `orderNO` 作为函数结果。
函数名称:`idAdd`
功能:增加序列号
参数:
id:需要增加的数
返回值:增加后的数
详细说明:
该函数用于增加序列号,支持数字、小写字母和大写字母的进位。例如:
数字进位:从 0 到 9,到达 9 后进位;
小写字母进位:从 a 到 z,到达 z 后进位到 a;
大写字母进位:从 A 到 Z,到达 Z 后进位到 A。
其他字符在原有基础上加 1。
示例调用:`AddOne("5")="6", AddOne("L99")="M00"`等。该函数为 `getMaxOrder` 函数提供支持,用于确保序列号的连续性。
编程语言
- asp中用数据库生成不重复的流水号
- JavaScript注入漏洞的原理及防范(详解)
- js图片翻书效果代码分享
- 使用JavaScript生成罗马字符的实例代码
- 脚本div实现拖放功能(两种)
- 解决angular的$http.post()提交数据时后台接收不到参
- ThinkPHP中使用Ueditor富文本编辑器
- 对象转换为原始值的实现方法
- JQuery为用户控件(ASCX)赋值与接口的应用
- JavaScript结合AJAX_stream实现流式显示
- 基于HTML+CSS,jQuery编写的简易计算器后续(添加了
- 深入浅析JavaScript中with语句的理解
- AngularJS使用ng-options指令实现下拉框
- MYSQL的主从复制知识点整理
- Prototype框架详解
- 探讨SQL compute by的使用分析