首页 > 解决方案 > 保持 prem 访问数据库与 SQL Azure 同步

问题描述

我是云启用 VB5 销售点类型的应用程序,该应用程序使用 Access 数据库 ('97) 安装在 40 个商店位置。我知道 - 坏主意,但这就是我的客户想要付钱给我做的 - 250,000 行代码,所以没有预算来重写它。

我计划创建一个 SQL Azure 数据库并使用 API (PaaS) 来允许所有位置使用公共数据。

每个位置对于访问成员数据和奖励计划数据的单个成员表平均只有 100 次 DB 调用。

我将不胜感激保持本地 Access 数据库与 Azure 数据同步的任何想法。我想在某个位置失去互联网连接的情况下这样做。我认为我不能使用 Azure SQL Sync,因为所有数据库都需要是 SQL Server DB。我正在考虑简单地将本地访问数据库用作缓存,并且每当成员首次访问其成员 sql 数据时,检查最后更新日期是否不同,如果是,则更新访问数据库。也许更好的方法?

标签: azurems-accessvb6-migration

解决方案


嗯,在 2009 年和 2010 年有一个用于 Access 的 .net 同步提供程序。它在 PDC 2009 上进行了演示。遗憾的是,ms-access 的同步提供程序从未向公众发布。这将允许无缝同步到在 Azure OS 上运行的 SQL。

但是,因此我会考虑在每个位置运行 SQL express。因此,您可以将 SQL Express 版本作为 SQL Azure 的复制客户端(订阅者)。您可能会认为/认为数据库在您的同一网络上是本地的,但实际上它允许所有位置共享相同的数据。

如果只有奖励表 - 也许是一个新功能?然后只为那部分运行 SQL 服务器。但是,如果您需要所有位置来共享数据和一个公共数据库,那么 SQL Server 同步和复制会很好地工作,因为所有东西 + 软件都将在本地网络上运行,并点击本地版本的 SQL express - 但是同步因此,部分将在您现在拥有的应用程序和代码库之外。

如果您知道自己在做什么,那么从 JET/mdb 到 SQL express 的迁移可以毫不费力地完成。如果 VB 应用程序使用 oleDB,或者说 ADO 代替 DAO(jet/Access)数据对象,这将非常集中。

因此,如果 VB 应用程序使用 ADO,那么转换为使用 SQL express 作为后端实际上将是相当小的。因此,如今在每个站点上运行 SQL express 很容易,并且比基于 Access/JET 的后端(如果这些站点是多用户的)更可靠。我想如果每个站点都不是多用户的,那么 JET 是一个很好的数据引擎,与设置、运行和安装 SQL express 相比,零安装表明你仍然可以使用 JET。

没有用于访问 SQL 服务器的同步客户端。所以,你可以考虑自己滚动。(好吧,你必须这样做)。如前所述,另一种方法是在应用程序部分没有任何同步软件,并为此目的使用 sql server 同步(复制)。虽然 SQL express 的免费版不能成为主服务器,但它们可以是 SQL 服务器同步服务的客户端/订阅者。因此,您无需接触您的应用程序,而只需从 JET 迁移到 SQL express,然后同步部分就在您的应用程序之外。


推荐阅读