【问题标题】:How to get data from an occasionally connected device (laptop) to backend SQL Server如何从偶尔连接的设备(笔记本电脑)获取数据到后端 SQL Server
【发布时间】:2013-10-16 18:43:12
【问题描述】:

我正在为我的工作编写一个程序,该程序允许员工在现场使用笔记本电脑,并在他们返回办公室后将他们所做的事情同步回服务器。

我已经通过 Microsoft SQL Server Compact Edition 3.5 使用 Windows Mobile 6.5 和 RDA 完成了这项任务。我的问题是 SQL Server CE 3.5 不支持所需的地理空间数据类型。

此外,较新版本的 SQL Server CE 不支持 RDA(远程数据访问)。过去我曾尝试过复制,但发现它对于我正在从事的小型项目来说太过分了。

用户返回网络后,我可以使用 SQL Server Express 将数据同步回数据库吗?我在网络上使用 SQL Server 2008 R2 标准。

【问题讨论】:

  • SQL CE 4.0 确实可以与 RDA 一起使用
  • @ErikEJ 你有资源说明这一点吗?我快速搜索了一下,发现没有。不过我可能是错的
  • 不管怎样,SQLCE 都不支持空间数据类型
  • 我发现我的许多问题的答案是创建一个 LINKED SERVER。一旦我将 SqlExpress 实例作为链接服务器添加到网络服务器,我就可以使用 TSQL 查询来做我想做的事情。

标签: c# sql sql-server-2008-r2 sql-server-ce replication


【解决方案1】:

是的,只要数据库大小不超过限制,您就可以使用 SQL Server Express。对于 SQL Server Express 2008 R2,该最大值为 10 GB。此外,我每天都会推荐 SQL Server Express 而不是 SQL Server CE。

我曾经做过一个离线数据库项目,我们发现 SQL Server Express 也是正确的方法。这是一个功能齐全的数据库。

【讨论】:

  • 我将如何设置 Sql express。至少有 4 台笔记本电脑将使用它。我是否必须为每台笔记本电脑创建一个 SQL 实例?
  • @CodeSlinger,只需将其安装在每个人身上。每个连接字符串的SERVER 将相同(如果使用默认设置),即.\SQLEXPRESS
  • 有没有办法进行更改跟踪,这样一个人就不会在他们都回到办公室同步他们的更改时重写其他人?我知道复制可以做到这一点,但过去我在复制方面遇到了困难。
  • @CodeSlinger,我们最终使用了Timestamp 数据类型来管理确定哪些行发生了变化。因此,如果服务器上的Timestamp 与客户端上的Timestamp 不匹配,我们就知道该行不同,因此是冲突解决时间。
  • 在我开始使用空间数据类型之前,我有一个非常棒的解决方案。我认为病态能够解决这些问题...感谢信息人。巨大的帮助
猜你喜欢
  • 1970-01-01
  • 2014-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-02
  • 1970-01-01
  • 2017-12-25
  • 2022-01-25
相关资源
最近更新 更多