当DataSnap客户端应用程序连接到DataSnap Server的远程数据模块并使用TDataSetProvider
+ TClientDataSet
时,它会缓存客户端应用程序本地的db表(或视图)。用户可以在本地更改TClientDataSet中的数据,并ApplyUpdates(0)
将更改与服务器同步。这一切都有道理。
使用SQL Server 2008 db,主键可以是identity
或GUID
字段。假设用户在将新记录添加到本地TClientDataSet
时将离线,本地TDataSetProvider
和TClientDataSet
如何处理主键字段的分配用户创建新记录?由于本地创建的记录可能是主/细节关系的一部分,因此在本地创建新主键需要似乎是合乎逻辑的。当用户执行`ApplyUpdates(0)'时,如何解决?
当多个用户以离线模式创建记录时,如果每个用户执行ApplyUpdates(0)
时主键冲突如何解决?
identity
字段优于GUID
字段,反之亦然?为什么呢?