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