7507|15

57

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

数据库同步 SqlCeRemoteDataAccess.Pull 里面的trackoption 参数设置问题 [复制链接]

需要同步PDA和服务器数据库。用SQLCE3.0

SqlCeRemoteDataAccess.Pull方法可以下载服务器数据库的数据到PDA,

其中有个参数叫trackoption 。

当我把这个参数设置为TRACKINGOFF,也就是不跟踪数据变化时,没有任何问题,可以下载数据。

但当把它设置为TRACKINGON时,就会报错80040E3F,描述是表已经存在。服务器中,该表的主键已经创立了,而且下载语句是select * from table.



下面是MSDN对这个参数的说明:


  1. 下表列出了 RDA_TRACKOPTION 枚举的枚举器及其对应的值,并分别进行了说明:

  2. 成员名称  值  说明  
  3. TRACKINGOFF
  4. 0
  5. SQL Server 2005 Compact Edition (SQL Server Compact Edition) 不跟踪对所请求表的更改。对于本地表,不需要 PRIMARY KEY 约束,也不会创建该约束。

  6. TRACKINGON
  7. 1
  8. SQL Server Compact Edition 跟踪对所请求表的所有更改。将在本地表上创建与所指定 SQLSelectString 相关的 PRIMARY KEY 约束。这是默认设置。

  9. TRACKINGONWITHINDEXES
  10. 2
  11. SQL Server Compact Edition 跟踪对本地表的所有更改。将在本地表上创建的 SQLSelectString 中所指定的 SQL Server 表的索引和 PRIMARY KEY 约束。

  12. TRACKINGOFFWITHINDEXES
  13. 3
  14. SQL Server 不跟踪对所请求表的更改。但是,将在本地表上创建的 SQLSelectString 中所指定的 SQL Server 表的索引和 PRIMARY KEY 约束。


  15. 备注
  16. 当指定 TRACKINGON 或 TRACKINGONWITHINDEXES 时,SQL Server Compact Edition 将跟踪在本地表中插入、更新或删除的每条记录。当指定 TRACKINGON 时,将在请求的表上创建 PRIMARY KEY 约束。当指定 TRACKINGONWITHINDEXES 时,将在请求的表上创建 PRIMARY KEY 约束和相关索引。仅当请求组成索引的列时才会创建索引。

  17. 当 RDA_TRACKOPTION 设置为 TRACKINGON 或 TRACKINGONWITHINDEXES 时,将应用下列限制条件:

  18. 如果 SqlSelectString 语句返回不可更新的记录集,将出现错误。

  19. 必须在 SELECT 语句返回的可更新记录集上定义主键。

  20. SELECT 语句可以引用视图或存储过程,但是引用的视图或存储过程必须仅引用一个表,并且必须是可更新的。

  21. 当指定 TRACKINGONWITHINDEXES 时,将根据 LocalTableName 中指定的 SQL Server Compact Edition 本地表,创建位于 SQL Server 表上且与 SQLSelectString 中所指定列相关的索引。

  22. 注意   如果用户要更新设备上的请求表,然后将更改的记录推送回原始的 SQL Server 表,则必须指定 TRACKINGON 或 TRACKINGONWITHINDEXES。当应用程序调用 Push 方法时,SQL Server Compact Edition 将使用更改跟踪信息在本地 SQL Server Compact Edition 表中查找已插入、更新和删除的记录,并将这些更改传回 SQL Server。


复制代码

最新回复

还未解决。  详情 回复 发表于 2009-5-14 09:47
点赞 关注

回复
举报

64

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
那表是肯定不存在的。
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
RDA拉数据时,要确保SQLCE没有目标表
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

4
 
引用 2 楼 feishanm 的回复:
RDA拉数据时,要确保SQLCE没有目标表


肯定没有的,数据库是新建的,我试了N次的。

要是参数设为不跟踪数据,就能拉数据,

但设置为跟踪数据时,就不能了,提示表已经存在了。
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

5
 
顶下,还没解决。
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

6
 
still.
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

7
 
关注.
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

8
 
关注
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

9
 
引用 7 楼 91program 的回复:
关注

 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

10
 
关注
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

11
 
帮你顶
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

12
 
帮顶!
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

13
 
顶下,解决不了。
 
 
 

回复

101

帖子

0

TA的资源

一粒金砂(初级)

14
 
不会吧。你应该是有目标表了吧。你重新用SqlCeEngine创建一个数据,然后用SqlCeRemoteDataAccess里的Pull方法,参数为TrackingOn。试试。不会报错吧。表被PULL下来以后就不要用PULL方法了,除非你将PULL下来的表删除了。
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

15
 
引用 13 楼 dawei_sun 的回复:
不会吧。你应该是有目标表了吧。你重新用SqlCeEngine创建一个数据,然后用SqlCeRemoteDataAccess里的Pull方法,参数为TrackingOn。试试。不会报错吧。表被PULL下来以后就不要用PULL方法了,除非你将PULL下来的表删除了。


已经试验了无数次。

数据文件是用query analyzer 创建的。

新创建的也会提示表已经存在,而且改成TrackingOff就可以PULL了。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

16
 
还未解决。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表