我现在正在使用delphi,并且有一个程序连接到另一个程序(服务器),该程序上有mysql数据库并将数据发送回客户端。我有一个具有服务器程序和数据库的Web服务器,但我的问题是,我可以直接从我已经制作的客户端程序(Windows和未来的mac)到Web服务器上的mysql数据库吗?或者我真的需要服务器程序吗?如果是这样,我需要做什么才能通过互联网将我的客户端程序连接到MySQL数据库?
答案 0 :(得分:1)
只要您为允许远程访问的数据库创建用户/ pw组合(旁边的安全性讨论),您应该能够直接访问mysql数据库。然后,您将需要搜索兼容的mysql库,以便简化程序和mysql之间的通信。在远端技术端你可能需要直接读/写mysql套接字,但这也是可能的。
答案 1 :(得分:1)
取决于您的客户端程序是否将继续作为本机应用程序,或者您是否计划迁移到基于浏览器的客户端。
如果它们是本机应用程序,您可以获取它们所编写的语言的库组件,这些组件将能够直接与MySQL数据库通信。 Delphi有很多选择;我不熟悉本机Mac开发可用的选项(当然,Embarcadero正在推出可以生成Mac应用程序的Delphi)。
但是,如果您计划将客户端设置为基于浏览器,则ajax解决方案希望与Web服务器而不是数据库服务器进行通信。在这种情况下,您将需要维护您的中间件。有关基于浏览器的应用程序是否可能或希望与数据库服务器进行直接的讨论,请参阅this question。
答案 2 :(得分:1)
我会使用SOAP / XML,并将SQL完全保留在客户端之外。
答案 3 :(得分:0)
这是典型的用例,其中REST(例如使用JSON编码的数据库记录)可能会有所帮助。使用lkJSON或SuperObject很容易实现Delphi客户端,将HTTP响应中的数据库记录放入TClientDataSet。
答案 4 :(得分:0)
是的,这是可能的,但这是个好主意吗?
here是对2层v 3层架构的基本讨论