以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 网络环境下的复杂编号的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=32607) |
-- 作者:lihe60 -- 发布时间:2013/5/5 9:22:00 -- 网络环境下的复杂编号的问题 帮助中“网络环境下的复杂编号” 使用自动增量主键,例如_Identify列,能够有效解决编号的问题,即使是多人同时向一个表中增加行,也不会出现重复的编号。 现在有个问题:第一次打开软件时,e.datarow("_identify")=0,而不是最大的主键编号。 |
-- 作者:程兴刚 -- 发布时间:2013/5/5 9:26:00 -- http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=26913&replyID=&skin=1 |
-- 作者:jspta -- 发布时间:2013/5/5 10:42:00 -- 一定要建立编号表的,否则你这样弄编号肯定会重复。 你这种方法我以前也用过,存在跟你一样的问题,无法获得最大identify,但是可以要先获取最大值。但是当多人使用的时候,编号也会重复。 使用identify来关联编号是非常不靠谱的,以后迁移,拆分表的时候,就痛苦死你了 所以你还是不要想其他方法了,按照教程的修改下吧。 |
-- 作者:everybody -- 发布时间:2013/5/5 10:49:00 -- 以下是引用jspta在2013-5-5 10:42:00的发言:
一定要建立编号表的,否则你这样弄编号肯定会重复。 你这种方法我以前也用过,存在跟你一样的问题,无法获得最大identify,但是可以要先获取最大值。但是当多人使用的时候,编号也会重复。
使用identify来关联编号是非常不靠谱的,以后迁移,拆分表的时候,就痛苦死你了
所以你还是不要想其他方法了,按照教程的修改下吧。
你说的这个 按照教程修改下吧,是指那个教程?
不是这个么?
再谈_Identify 我们知道内部表有一个_Identify,这是一个整数型列,每增加一行,该列的值就会自动加1。 实际使用的时候,我们是看不到_Identify列的,但是可以在代码中使用该列,例如: Dim id1 As Integer = Tables("订单").Current("_Identify")Dim id2 As Integer = Tables("订单").Rows(0)("_Identify") Dim id3 As Integer = DataTables("订单").DataRows(1)("_Identify") 也可以在表达式中使用该列,例如可以增加一个表达式列,将其表达式设为: [_Identify] 这样即可通过此列查看_Identify的值。 _Identify值类似行的编号,这个编号表示数据录入的顺序,也就是某个DataRow在DataTable中的顺序。 Dim Val1 As Double Case "收入","支出" For Each dr As DataRow In e.DataTable.Select("[_Identify] >= " & e.DataRow("_Identify") ) Val1 = e.DataTable.compute("Sum(收入)","[_Identify] <= " & dr("_Identify")) Val2 = e.DataTable.compute("Sum(支出)","[_Identify] <= " & dr("_Identify")) dr("余额") = Val1 - Val2 Next End Select |