4

嗨,我有这个小问题我有一个旧版 VB6 桌面应用程序,它连接到托管在本地 Ubuntu 服务器计算机中的 MS Access 数据库,该数据库作为 SMB 共享共享到 LAN,并且我有一个托管在 Windows 中的 Tomcat Web 应用程序基于 VPS,这些是

要求

  • 从 MS Access db 读取信息并将其显示在 webapp 中(在 URL 访问和几乎实时的准确性)。

  • 使用通过网站收到的信息更新 MS Access 数据库。

事实

  • 20Mb < 分贝大小
  • 与 15 ~ 25 个用户共享。
  • 不断的本地更新和查询。

文件大小很小,因为它随着工具变大而被截断(> 100Mb) ,但这需要很长时间....与此同时,我需要一种方法来实现该功能,这是我的选择。


选项1

直接从 webapp 通过 VPN 访问 ubuntu 服务器中的数据库。

缺点

  • 可能吗?。
  • 连接缓慢。
  • 可能会更频繁地锁定数据库,因为它经常在本地发生。

选项 2

在 Ubuntu 服务器上运行一个本地 webapp,将 db 公开为 REST API,因此更新将由本地 webapp 处理。

缺点:

  • 很难在 UNIX 环境中使用 MS Access,查看unixODBCFreeTDS,但到目前为止我还不能使用它。

  • 好吧,编写整个应用程序并保护服务器。

选项 3

有什么建议么?

谢谢你读到这里,非常感谢任何帮助。

4

1 回答 1

1

除非我在您的描述中遗漏了某些内容,否则我认为您可能会混淆 API 和库之间的区别。基本上,ODBC 是一个 API,它被实现为一个库,并且通常通过 ADO 和 ADO.NET 等附加数据访问库在基于 Windows 的机器上使用。我提到这一点是因为您将 unixODBC 称为解决方案。它不是一个完整的解决方案,因为它不仅仅是 API。

简单来说,您使用 Microsoft Access 创建的数据库文件是一个 .MDB 平面文件数据库(好吧,还有一点,但就将其视为数据库而言,这就是这里的全部内容)。如果您知道 .MDB 文件的结构是如何工作的,您可以编写自己的库来读取/写入它。当然,这不是微不足道的,而且在 Windows 平台上,这是由 Microsoft 使用操作系统中包含的库为您提供的。这也称为 JET 驱动程序和数据库。JET 是 .MDB 文件实现的数据库格式,Access 和其他应用程序通过相应命名的 JET 驱动程序使用它。

因此,要找到适用于非 Windows 平台的等效选项,您需要某种知道如何直接读取/写入 .MDB 文件的库。如果您尝试从 Access 应用程序同时使用 .MDB 文件,则需要确保您选择的库支持同时多用户访问数据库。

在快速搜索中,似乎确实可以找到一些解决方案。第一个似乎它可能有一些功能限制。第二个似乎是商业产品。

MDB 工具

Easysoft JET/Access 驱动程序

于 2012-04-13T22:03:19.733 回答