将访问数据库链接到服务器后端

时间:2012-02-26 13:32:17

标签: sql-server ms-access odbc

我有一个Access数据库,在前端和后端分开(对于客户端,我只是编写了ODBC PHP函数来通过Internet运行它)。现在,他们希望将后端放在他们的虚拟服务器上(您可以访问它上面的C:\,这是一个真正的服务器),将其用作各种计算机上所有不同前端的后端。我该如何实现这一目标?

我只在Access中使用SQL Server,但我想确保我需要的是为了不搞砸了一些东西:)

2 个答案:

答案 0 :(得分:1)

我认为你有两种选择,但只有一种应该考虑。 访问不支持(据我所知)通过TCP / IP /其他协议的连接,例如"正确的"数据库。它支持文件系统访问,这意味着您必须具有在网络驱动器或类似设备上显示访问数据库的安全连接。

选项1 :使用安全连接,为每个客户端定义一个网络驱动器映射到包含访问数据库的虚拟服务器驱动器。这基本上会创建一个与您今天的环境非常相似的环境。请注意,这不是最佳实践,并且由于安全性/ NFS /等原因,某些系统无法实现。

选项2 :我担心您需要将前端/后端重写为更强大的数据库,任何人都可以(SQL Server,mySQL等...)我建议您研究一下SQL Server Express,我非常确定它会在没有任何许可成本的情况下为您提供所需的内容。 SQL Server Management Studio包含一个从Access导入数据的选项(或者您可以从Access中导出数据),您需要调整数据类型等...但它不是结束世界的。 从那时起,您将拥有一个可以通过网络访问的数据库实例,而不会出现任何问题。此时,您可以选择按原样保持Access前端,并使用ODBC连接到SQL而不是以前的本地Access副本。我建议你借此机会完全放弃Access:)

这是一个痛苦的过程(曾经有几次),但是一个关键的过程,通过全新的功能集将您的应用程序提升到一个新的水平。

如果您在此过程中需要任何进一步的帮助,我就在这里。祝你好运!

答案 1 :(得分:0)

您可以考虑访问网络服务。这意味着您将数据库发布到SharePoint或现在发布到Office 365.

通过Web服务可以使用已发布的数据,因此在断开连接模式下可以很好地工作,这是智能手机应用程序或通过互联网运行的应用程序的典型要求。

这也意味着您可以在非常糟糕的连接上使用该应用程序。实际上,您可以拔出网络插头,Access应用程序将继续运行。

因此,对于这些已发布的Access应用程序,Access桌面/客户端应用程序也可以链接到此已发布的数据(和应用程序)。最重要的部分是现在应用程序功能处于断开连接模式。

因此,如果您丢失了连接,则应用程序将继续在桌面客户端上运行。

使用新的网络发布功能,您可以在任何标准浏览器上运行的Access中构建和运行表单:

以下是运行Access应用程序的视频,我转而在浏览器的中途运行此应用程序:

http://www.youtube.com/watch?v=AU4mH0jPntI

(不需要ActiveX或Silverlight - 您甚至可以在智能手机的网络浏览器或iPad上使用这些Access表单。)

这是另一个视频,展示了如何使用Access将“关系”数据表导出到Office 365。

http://www.youtube.com/watch?v=3wdjYIby_b0&fmt=22&hd=1

请注意,由于这些已发布的应用程序在云操作系统上运行,因此您不受Access数据库引擎的限制,也不会将Access数据引擎用于Web发布的数据。这意味着用户限制实际上只是大规模云服务器的限制,当然它们可以处理数百万用户。因此,Office 365上的Access Web服务也是一种可行的解决方案。您现在可以扩展到数百万用户,您唯一的用户限制是那些“大规模”云服务器 - 而且它们真的很大!

请注意,您的Access Web表单将成为.net XAML(zammel)表单,并且报表将转换为RDL并使用SQL Server报表服务。

在您的情况下,您提到您可以链接到后端,因为您注意到“驱动器”通过VPN通过互联网连接公开。这样的设置可能有效,但效果不好,容易受到损坏

我在这里解释为什么连接会破坏数据文件:

http://www.kallal.ca/Wan/Wans.html