以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助] 手机端和客户端同时新增行冲突  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=126412)

--  作者:eauacqua
--  发布时间:2018/10/20 20:37:00
--  [求助] 手机端和客户端同时新增行冲突
情况如下:
1)数据库为外部数据库,放在家中;
2)手机服务端在公网服务器上;
3)同时用开发的项目直接连接数据库。
4)新增行的编号都采用_Identify列的编号计算出来。
出现的问题:
手机端和计算机端同时新增行的时候总出现新增行编号是一样的情况,如何解决这个问题?
主要目的向手机端和计算机端同时使用
[此贴子已经被作者于2018/10/20 20:50:13编辑过]

--  作者:有点甜
--  发布时间:2018/10/21 13:42:00
--  

1、_Identify如果是自动递增的话,不可能编号重复的;

 

2、_Identify新增的时候,编号是临时编号,保存到数据库以后,才会生成唯一呃编号。


--  作者:eauacqua
--  发布时间:2018/10/21 16:14:00
--  
甜版,明白了,再请教一下:
我现在的情况是:
1.手机端连接服务端,再连接数据库,HTTPrequest事件中,是新增行后立即保存的;
2.电脑端,是直接连数据的,一般是全部信息完成后,手动保存;
3.所以出现了编号是一样的情况。

问题请教一下:
1._Identify新增的时候,编号是临时编号,这个临时编号是基于datatable生成的呢?还是基于后台数据库生成的?
2.无论什么情况下,新增行后我马上都保存,是不是上述情况下的重复编号可以避免?
3._Identify 自动编号具体过程是什么?
感谢甜版

--  作者:有点甜
--  发布时间:2018/10/21 16:23:00
--  

1、基于已经加载的数据生成的。比如你数据库有100行,你加载了10行,新增一行,_Identify临时值就是11。保存以后,才变成101。

 

2、是的新增立马保存,再获取_Identify的值,就是唯一的值。

 

3、自动编号是数据库自身完成的。如果你不立马保存数据,那么就不应该引用_Identify的值,不然就有可能重复。


--  作者:eauacqua
--  发布时间:2018/10/21 16:27:00
--  
perfect, 我刚才测试一下,确实如此,感谢甜版。