获取数据库信息到程序的最佳方法(windows和mac)

即时使用delphi,并有一个程序,连接到另一个程序(服务器),其上有MySQL数据库,并将数据发送回客户端。 我有一个Web服务器,有服务器程序和数据库,但我的问题是我可以直接从客户端程序,我已经(Windows和未来的Mac)到Web服务器上的MySQL数据库? 还是我真的需要服务器程序? 如果是这样,我需要做什么来将我的客户端程序通过互联网连接到MySQL数据库?

先谢谢了。

只要你为数据库创建了一个允许远程访问的用户/密码组合,你应该可以直接访问mysql数据库(安全性讨论不在话下)。 然后你会想要搜索一个兼容的mysql库,这将减轻你的程序和mysql之间的沟通。 在很远的技术端,你可能需要直接读/写mysql套接字,但这也是可能的。

取决于您的客户端程序是继续作为本机应用程序,还是计划迁移到基于浏览器的客户端。

如果它们是本机应用程序,那么您可以获得它们所编写语言的库组件,这些组件可以直接与MySQL数据库通信。 德尔福有很多选择, 我不熟悉Mac本地开发有哪些选项可用(当然,Embarcadero正在推出一个可以生成Mac应用程序的Delphi)。

但是,如果您打算让客户端基于浏览器,ajax解决方案想要与Web服务器而不是数据库服务器通信。 在这种情况下,你将需要维护你的中间件。 有关基于浏览器的应用程序是否可能或需要与数据库服务器直接通信的讨论,请参阅此问题 。

为此,我将使用SOAP / XML,并将SQL完全从客户端中删除。

这是REST(例如使用JSON编码的数据库记录)可能有用的典型用例。 使用lkJSON或SuperObject实现一个Delphi客户端很容易,把来自HTTP响应的数据库记录放入一个TClientDataSet中。

是的,这是可能的,但这是一个好主意吗?

这里是关于2层v 3层架构的基本讨论