繁体   English   中英

远程连接 Access 数据库?

[英]Connecting Access Databases remotely?

目前,我有一个 Java 应用程序,可以执行我想要的所有操作,其中的限制是“它仅驻留在需要为其工作的本地计算机上”。 我的访问数据库位于远程服务器上,我在远程服务器上安装了 Java 应用程序,以使用连接字符串jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=D:\\\\DATA\\\\DPPI\\\\DATA\\\\DPPI\\\\DPPIPR01.mdb;连接数据库jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=D:\\\\DATA\\\\DPPI\\\\DATA\\\\DPPI\\\\DPPIPR01.mdb; jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=D:\\\\DATA\\\\DPPI\\\\DATA\\\\DPPI\\\\DPPIPR01.mdb;

它连接到 Access 数据库并使用它们执行所有业务逻辑。

增强功能(待完成):

  1. 在线申请 - 不是大问题。
  2. 远程连接数据库 - 这是唯一的问题。

如果我使应用程序在线,Access 数据库需要通过网络连接(有点像 IP 或某个网址)。

问题:

但是通过这个远程连接到Access数据库后,我的要求似乎无法完成。

如果我能够将数据库上传到在线网络托管服务器并仅从那里访问数据库,有什么办法吗? 如果是,那么我应该如何进行连接,因为 Access Database 通过提供包含驱动器号和所有的完全限定名称进行连接。

但是我应该如何进一步进行以便我可以远程连接 mdb 数据库?

ADO 解决方案:

但是通过链接后:
http://webcheatsheet.com/ASP/access_connection_strings.php ,看来我们可以进行远程访问数据库连接了。

ADO 的解决方案类似于:

connectionString="Provider=MS Remote; 远程服务器=http://your_remote_server_ip;" &_ "远程提供商=Microsoft.Jet.OLEDB.4.0;数据源=c:\\your_database_name.mdb"

我对我们如何连接 Access 数据库有点困惑。


我脑子里还有一个问题。 我正在使用 Type-1 驱动程序。 Type-4 驱动程序是否应该支持远程连接?

如果您的应用程序是服务器端应用程序(如 Web 应用程序)并且您服务器的操作系统是 Windows,那么理论上可以使用您的 Access 数据库。 在这种情况下,Access 数据库是您的应用程序的本地数据库。 在您的连接字符串中,您可以简单地使用服务器文件系统中 Access 数据库的路径。

但请记住,Access 是一个桌面数据库,而不是将其用作服务器数据库。 这可能会导致性能不佳,甚至可能导致系统崩溃。 此用例可能存在一些许可问题。

因此,即使可以将 Access 与服务器应用程序一起使用,强烈建议使用真正的服务器数据库,如 MySQL、MS SQL Server 等。即使是嵌入式数据库,如 Apache Derby 或 H2 也更适合。

如果您的应用程序像胖客户端一样在客户端运行,那么您使用 Access 的唯一机会就是将它放在网络文件系统上,这样每个客户端都可以看到它。 但这仅适用于 LAN。 如果你不能把它放在网络文件系统上,那么你必须使用真正的服务器数据库。

不要将Provider=MS Remote (RDS) 用于新开发。 这是 MSDN 文章中的引述

Microsoft OLE DB 远程处理提供程序(ADO 服务提供程序)

重要的

从 Windows 8 和 Windows Server 2012 开始,Windows 操作系统中不再包含 RDS 服务器组件(有关更多详细信息,请参阅 Windows 8 和 Windows Server 2012 兼容性手册)。 RDS 客户端组件将在 Windows 的未来版本中删除。 避免在新的开发工作中使用此功能,并计划修改当前使用此功能的应用程序。 使用 RDS 的应用程序应该迁移到 WCF 数据服务。

正如其他人所建议的那样,您应该认真考虑为此特定应用程序使用不同的后端数据库。

如果我能够调用驻留在装有 Microsoft Access 数据库的服务器上的另一个 Java 应用程序会怎样? 您能否让我知道它是否可以成为解决方案,以便我将我的应用程序分为两部分:
1. 在线 java 应用程序执行 2 件事:接受传入的请求并等待来自运行在包含 Microsoft Access 数据库的服务器上的另一个应用程序的响应。
2. 安装在装有 Microsoft Access 数据库的服务器上的 Java 应用程序只负责连接和返回 DTO(数据传输对象)-或集合中的某种对象。

因此,我希望服务器端程序来处理与数据库的通信,而客户端应用程序将与服务器应用程序进行通信。

请让我知道我是否应该以这种方式进行。

可以通过标记流量和排队从服务器---到----远程站点---(QOS..服务质量).....两个站点将通过VPN方法连接的流量减少不必要的跃点,这将改善延迟并增加安全性,因此服务器和远程站点在逻辑上就像在同一网络(LAN)上一样

问候 ,

阿里·雷汉

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM