access和sql server实时同步
Posted
技术标签:
【中文标题】access和sql server实时同步【英文标题】:access and sql server realtime synchronization 【发布时间】:2009-12-20 08:09:17 【问题描述】:我有一个将其数据存储在访问数据库中的安全应用程序。现在我需要 在该访问数据库和 sql server 2005 中的新数据库之间进行实时同步(复制)。这两个数据库是相同的。 有什么建议吗?!
我不知道如何使用 Windows 服务。我需要准确的技术答案。
【问题讨论】:
你见过:sqlserverpedia.com/blog/sql-server-tutorial/… 吗? @Remou:如果您将该链接放在答案中并稍微画出一点,我认为这将是最好的答案(关键是使用 SQL Server 链接服务器使 Jet/ACE 数据对 SQL Server 可见,您可以在其中运行一组追加/删除/更新以将 Jet/ACE 与 SQL Server 表同步)。 感谢 Remou。我检查了 URL。它真的很有用和实用。我以前做过。上面的方法不是实时的。有没有办法在 access 数据库和 sql server 2005 之间进行 db 同步使用 ACCESS LINKED TABLES sql server 2005数据库。它只有一个缺点。我们只有1个数据副本放在sql server 2005中。我需要是access数据库中的数据副本。 【参考方案1】:大多数情况下,我建议您使用 Windows 服务定期检查 MS Access db,并尝试将其与 Sql 数据库同步。
这将允许您消除人为因素,并定期运行此任务以同步数据库。
看看
Creating a Basic Windows Service in C# Creating a Windows Service in C#还有
Connect to Microsoft Access .mdb database using C# Beginners guide to accessing SQL Server through C#【讨论】:
是的,windows 服务是个好主意,但在创建 windows 服务之前,我需要知道如何将新添加的行提取到表中并将它们发送到 sql server 数据库。 我准备了一个小型 c# 应用程序。问题是如何仅将新添加的行从 access 数据库传输到 sql server 数据库。 (最好我被告知不要使用自定义编码的应用程序。)【参考方案2】:SQL server 有built-in replication functionality,您可以免费获得,因此您无需担心复制行和跟踪更改。有多种类型的 SQL 复制用于不同的情况,例如合并复制、快照复制和事务复制。最后一个,事务复制听起来像你想要的。 Merge replication 用于您的用户可能会断开连接、离开并稍后返回以进行同步(如远程用户)。 Transactional replication 用于订阅者和发布者可靠连接的地方。 Snapshot replication 每次同步时都会生成一个新的快照,并且不会考虑对数据的更改。阅读 MSDN 文档,找出适合您的情况的类型。
使用这些复制方法需要您在 SQL Server 或 Express 实例中设置表 - 您可以使用它与您的 SQL Server 同步,并将其他所有内容都保留为 Access 作为前端。我认为您想遵循 asstander 的建议并使用 Windows 服务来触发同步。但是,您可以将 Windows 同步管理器设置为在启动、关闭、计算机空闲等时自动尝试同步。如果您需要更好地控制触发同步,则可以按照 asstander 的建议使用 Windows 应用程序或服务。
【讨论】:
我认为 sql server 复制只在 sql server 和 rdbms 之间,如它自己或 mysql 等,而不是在 sql server 和 access 之间。 SQL Server 2000 可以使用 Jet 4 进行异构复制,但在 SQL Server 2005 中删除了该功能。 我的建议是将 Sql server 复制到本地 Sql server 或 express 实例,并使用 Access 链接到该实例 确切点是第一个sql server如何从access数据库中获取新行?正如我所说,它应该是实时的。以上是关于access和sql server实时同步的主要内容,如果未能解决你的问题,请参考以下文章