Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
在多用户环境下实现不重复编号
普通用户可以忽略本节内容.
我们已经知道,内部表利用_Identify,外部表利用自动增量主键,可以实现不重复的编号,即使在网络环境下多人同时输入数据,编号也不会重复.但是这种自动编号只能是一个数字,无法实现复杂的含特殊信息的编号要求.如果自己编码来实现自动编号,在多人同时输入数据的时候,将会出现重复编号,很多专业程序员对此也常常感到束手无策.
示例一
要求编号的前两位表示年,接着两位表示月,随后是四位数字的顺序号.
例如:09120008,表示09年12月的第8条记录.
在多人同时输入数据的时候,相互并不知道其他人是否正在输入数据,已经输入了多少数据,那么如何各自获得不重复的正确编号呢.
我们可以在数据源中增加一个表,
我是初学者,这些我都看过,但没有实例,实际不会应用呀。我用的是外部表。请赐教如何编码或设置
例如,我想实现PT+日期+流水号(4)?
例如,我想实现PT+日期+流水号(4)?
If e.DataCol.Name = "列名" Then '要变化的列
If e.Datarow.IsNull("列名") Then '如果这个列是空值
e.Datarow("编号列") = DBNull.Value '编号列为空
Else
e.DataRow("编号列") = "PT" & Format(e.DataRow("日期"),"yyMMdd") & Format(e.DataTable.Compute("Count(日期)", "[日期] = #" & e.DataRow("日期") & "# And [_identify] < 100" & e.DataRow("_Identify"))+1,"00")
End if
End If
放在表事件datacolchanged中.