关于RDA的Push和Pull方法多种情况的测试结果
来源:互联网 发布:软件系统是指 编辑:程序博客网 时间:2024/06/09 16:10
数据库表定义
CREATE TABLE [TestRDA] (
[AutoID] [int] IDENTITY (1, 1) NOT NULL ,
[AFlag] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[AName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
CONSTRAINT [PK_TestRDA] PRIMARY KEY CLUSTERED
(
[AutoID],
[AFlag]
) ON [PRIMARY]
) ON [PRIMARY]
GO
[AutoID] [int] IDENTITY (1, 1) NOT NULL ,
[AFlag] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[AName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
CONSTRAINT [PK_TestRDA] PRIMARY KEY CLUSTERED
(
[AutoID],
[AFlag]
) ON [PRIMARY]
) ON [PRIMARY]
GO
【注意】 AFlag主要用来标识数据是Server端修改的还是Mobile端修改的。
目前数据库的数据如下:
AutoID AFlag AName
====================================
1 M 王伟
1 S Deboy
2 M 王伟
2 S Wang
3 M 王伟
3 S Randy
4 M 王伟
4 S Xia
5 M 王伟
6 M 王伟
7 M 王伟
====================================
====================================
1 M 王伟
1 S Deboy
2 M 王伟
2 S Wang
3 M 王伟
3 S Randy
4 M 王伟
4 S Xia
5 M 王伟
6 M 王伟
7 M 王伟
====================================
现象1:
当我编写一个Adapter类用来处理SQLCE上数据的批量更新和删除的时候,在编写UpdateCommand之时
如果写成
sqlUpdateCommand1.Parameters.Add(new SqlCeParameter("@AFlag", System.Data.SqlDbType.VarChar, 50, "AFlag"));
则报错:
未处理的“System.ArgumentOutOfRangeException”类型的异常出现在 System.Data.SqlServerCe.dll 中。
其他信息: ArgumentOutOfRangeException
其他信息: ArgumentOutOfRangeException
如果写成:
sqlUpdateCommand1.Parameters.Add(new SqlCeParameter("@AFlag", System.Data.SqlDbType.NVarChar, 50, "AFlag"));
则问题解决,至于为什么,我不知道
现象2:
针对目前的数据,如果Mobile上在Pull的时候限制条件 AutoID<4,那么将会取下来如下数据:
1 M 王伟
1 S Deboy
2 M 王伟
2 S Wang
3 M 王伟
3 S Randy
1 S Deboy
2 M 王伟
2 S Wang
3 M 王伟
3 S Randy
此时,在Mobile上插入数据( M Test1)
则数据在数据库中表示为:
4 M Test1
那么当使用Push同步到数据的时候,将会出现如下错误
The table cannot be opened.[,,,Table Name,,]
原因:服务器上的主键已经存在,而且Mobile端并没有取此数据进行更改,而是完全新建的,将会产生冲突。
现象3:
如果在服务器端修改了数据:
1 M 王伟(=>Test)
然后在Mobile上修改了这条数据:
1 M 王伟(=>Mobile)
当最后使用RDA的Push方法的时候,此数据在服务器上的结果将是
1 M Mobile
因此数据的修改冲突,没有优先级排序,只有修改时间前后的判定
现象4:
当Mobile端使用RDA的Push方法的时候,Mobile端将只提交在上一次Pull或者Push之后更改的部分。
- 关于RDA的Push和Pull方法多种情况的测试结果
- 关于push和pull模式的说明
- 关于git的pull与push
- Git关于pull,commit,push的总结
- Git关于pull,commit,push的总结
- directshow的push和pull mode
- adb push和pull指令的使用
- 【adb】 pull和push的正确姿势
- Pull和Push通信机制的研究
- git pull和git push的区别
- GIT的Push和Pull,强制Pull覆盖本地命令
- Git pull、 push 操作无需输密码的方法
- 上传文件到github的方法(clone pull push)
- Git pull、 push 操作无需输密码的方法
- 用adb push/pull init.rc的方法
- 用adb push/pull init.rc的方法
- MVC 的 Pull 和 Push 类型的区别
- 水晶报表的拉(Pull)和推(Push)模型
- AOM 2.0的神奇魔力之二:国际化
- 如何规划成功的新年目标
- c#多线程:线程池和异步编程
- 怎样设定目标(五)——设定目标失败的七大原因
- 搞定typedef 、const 关键字
- 关于RDA的Push和Pull方法多种情况的测试结果
- [转载] 使用CFileDialog选择多个文件
- .NET:一段比较经典的多线程学习代码
- 我所用的Firefox插件
- 百度博客连接
- c#(Socket)异步套接字代码示例
- 隐私结束时代到来
- 开始学习flex
- 翻译《Ruby Hacking Guide》