Offline数据同步解决方案同步规则和SDF的用法

本文详细介绍了使用SQL Server Compact Edition 3.5(SSCE)进行数据同步的过程,包括同步规则、SSCE连接字符串、辅助类以及SyncSDF文件的结构和用途。特别讨论了如何查询和应用服务端的更改,以及同步过程中的事务管理和时间戳列[__sysChangeTxBsn][__sysInsertTxBsn]的作用。
摘要由CSDN通过智能技术生成

1.  说明:本项目中使用的是SSCE3.5版本。

2.  同步规则:

只下载的数据,采用SnopShot模式下载;双向同步和只上传同步都采用Bidirectional模式;同步时间频率如下:

只下载:轮询同步程序,计划同步1d/次;同时,程序中做可以触发的同步;

双向同步:轮询同步程序,计划同步5mi/次;定时清理:轮询同步程序,计划同步1d/次;

只上传:同步轮询程序,计划同步1d/次;定时清理:同步轮询程序,计划同步1M/次;

当主程序登录成功后,启动后台同步线程,5分钟执行一次同步,同步时校验当前时间与配置文件中保存的LastSyncDateTime的时间差是否大于执行频率来判断是否本次执行同步。后台线程在主程序完全退出后自动结束。

 

3.  SSCE访问字符串的书写总结:

举例:connectionString="Data Source=..\Database\DIH_AMS.sdf;PersistSecurity Info = False;Max Database Size = 4000; Max Buffer Size = 1024;"

项目中常用的连接SDF的写法。解释如下:

Data Source:SDF的路径和名称,上面用到了相对路径;

Persist Security Info:是否保存密码,这里true/false影响不大;

Max Database Size:SDF文件的最大支持容量,默认128,最大支持到4G,但只能写到<4091;

Max Buffer Size:缓存大小,默认640;

SDF文件,可以设置访问密码,不像MS-Server要设置UserID和Password,比如” Password= 'dih+dih123';”,设置密码时,需要Server Studio打开SDF,在属性里面添加密码。

自动压缩设置,比如”SSCE:AutoShrink Threshold=60;”这里不写的话默认也是60%,表示实际容量不超过容量的60%时,自动压缩;

参考:http://msdn.microsoft.com/zh-cn/library/system.data.sqlserverce.sqlceconnection.connectionstring(VS.85).aspx

4.  SSCE访问类Helper:

#region InsertLocalData
public static bool InsertLocalData(string strSql, string clientConnStr)
{
	bool b = true;
	using (SqlCeConnection conn = new SqlCeConnection(clientConnStr))
	{
		try
		{
			conn.Open();
			SqlCeCommand cmd = conn.CreateCommand();
			cmd.CommandText = strSql;
			cmd.ExecuteNonQuery();
		}
		catch
		{
			b = false;
			conn.Close();
		}
	}

	return strRes;
}
#endregion
#region DeleteLocalData
public static bool DeleteLocalData(string strSql, string clientConnStr)
{
	bool b = true;
	using (SqlCeConnection conn = new SqlCeConnection(clientConnStr))
	{
		try
		{
			conn.Open();
			SqlCeCommand cmd = conn.CreateCommand();
			cmd.CommandText = strSql;
			cmd.ExecuteNonQuery();
		}
		catch
		{
			b = false;
			conn.Close();
		}
	}

	return b;
}
#endregion
#region UpdateLocalData
public static bool UpdateLocalData(string strSql, string clientConnStr)
{
	bool b = true;
	using (SqlCeConnection conn = new SqlCeConnection(clientConn
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值