用VS.NET 2005开发SQL MOBILE 2005程序,在RDA同步的PULL函数中的第4个参数只要采用TrackingOn和TrackingOnWithIndexes(另两个参数无问题)就一直发生一个错误:
无法将重复值插入唯一索引中。[Table name=_sysRDASubscriptions,Constraint name=c_LocalTableName]
_sysRDASubscriptions是SQl Mobile 2005自动产生的系统表,而且只有PULL函数中的第4个参数采用TrackingOn和TrackingOnWithIndexes才会产生,_sysRDASubscriptions表的其中一个字段“localTableName”是主键,Pull后_sysRDASubscriptions表里自动生成一条相关的记录。我用Query Analyzer删除PULL的表,但是_sysRDASubscriptions表的相关记录却不会自动删除(系统表无法手动修改),导致我再次PULL后就提示上面的错误!!!
(注:在程序第一次启动后PULL N次都无任何问题,关闭程序后再一次启动就一直出现上面的错误,实在令人费解!! ),当表存在时我在PULL之前都有DROP TABLE,而且我在VS.NET 2003开发SQL SERVER 2.0一直没问题啊!
这个问题我在VS2005 BATE2和VS2005正式版都试过了,同样的错误!!!
问题已经很久了,问了很多地方,一直没有解决过!!!!!!!!!!!!!!
-----------
终于知道了,原来是一个微软的BUG!!!晕
http://support.microsoft.com/default.aspx?scid=kb%3Bzh-cn%3B920272