1

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

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

增强功能(待完成):

  1. 使应用程序在线 - 不是一个大问题。
  2. 远程连接数据库 - 这是唯一的问题。

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

问题:

但是在远程通过这个Connect to Access 数据库之后,我的要求似乎无法完成。

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

但是我应该如何进一步操作,以便能够远程连接 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 驱动程序是否应该支持远程连接?

4

4 回答 4

3

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

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

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

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

于 2013-05-27T13:55:30.660 回答
0

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

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

重要的

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

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

于 2013-05-27T14:19:26.480 回答
0

it can be done by marking the traffic and queueing the traffic from the server---to----remote site ---(QOS..quality of service ) .....the two sites will be connected through VPN methods to reduce the unnecessary hops that will improve the latency plus add the security , thus server and remote site will logically act as if they are on the same network (LAN)

regards ,

Ali Rehan

于 2014-04-06T20:29:19.823 回答
0

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

所以,我希望服务器端程序处理与数据库的通信,客户端应用程序将与服务器应用程序通信。

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

于 2013-05-31T03:59:29.930 回答