关于firebird自增字段和clientdataset(100)

  • 主题发起人 主题发起人 elsss
  • 开始时间 开始时间
E

elsss

Unregistered / Unconfirmed
GUEST, unregistred user!
firebird没有自增字段所以我用了触发器,insert 前+1.界面用clientdataset编辑数据,但是增加数据时显示id不能为空,id是主键。用access自增字段就不会出现这个问题。请问各位富翁怎么解决这个问题。
 
在clientdataset.OnBeforePost事件中处理,如果该字段为空,则用另外一个DataSet到数据库中去查找当前表中的ID最大值,并将其加 1后赋值给clientdataset。
 
这个不行吧?如果操作过程中其他用户更新过数据,那么id最大值不就不对了,会出现主键冲突吧。我一直不明白access的自增字段会不会这样,难道不应该使用自增字段??
 
不一定要用自增列来解决主键,自己写一函数,根据时间值+计算机名构成也不错,在SQL中我是用NEWID()来实现主键唯一值
 
也可以用日期时间来实现主健唯一值~~
 
后退
顶部