【问题标题】:Using Linux to execute a query from Windows server by ODBC connection使用 Linux 通过 ODBC 连接从 Windows 服务器执行查询
【发布时间】:2014-10-14 10:55:36
【问题描述】:

问题是:我们有一个使用 Progress Openedge 数据库的客户端,我们需要从我们的服务器上对该数据库执行查询。

目前驱动程序安装在我们的 Windows 服务器上,PHP 代码使用 ODBC 来运行查询。

现在我们想将代码移动到 Linux 服务器。我们之前尝试过使用他们的 linux 驱动程序,但该尝试失败了。

问题是,是否有可能以某种方式在 linux 服务器上运行 PHP 代码,该代码与 Windows 服务器通信,在 Windows 服务器上运行查询,并将结果返回给 Linux?

你将如何解决这个问题。

谢谢!

【问题讨论】:

  • 搜索在 Linux 上运行的 PHP ODBC 客户端库。
  • 这是关于购买和安装progress-db的特定专有驱动程序。我们之前尝试过,但效果不佳。

标签: linux windows openedge progress-db


【解决方案1】:

是的,这是可能的。您的问题归结为“我的 Linux 服务器如何要求我的 Windows 服务器做某事”(其中“某事”恰好是“与数据库对话”),并且有多种方法可以实现这一目标。例如,您可以在 Windows 服务器上运行 Web 服务(RESTful 或 SOAP)。

确保您考虑安全性:如果您在 Windows 服务器上部署允许远程客户端修改数据库的服务,您必须注意哪些 远程客户端可以使用该服务。你最不想做的是accidentally allow random strangers to run arbitrary queries against your database

【讨论】:

  • 谢谢,我担心我不得不走这条路。我希望有一种方法可以在 Linux 中获取查询处理程序,并逐个获取结果。问题是,这样 Windows 服务器必须了解我的应用程序,并获取每个查询所需的确切字段。如果没有其他建议,我会将其标记为已接受。谢谢。
  • 不一定;您可以围绕 ODBC API 编写一个瘦包装器,让 Windows 服务器接收它不理解的查询并发回它不理解的结果。当您构建自己的界面时,您可以选择想要的高级或低级。
  • 没错。我目前使用 odbc_fetch_row 和 odbc_result 每行单独获取字段,因为在某些行中我不需要所有字段。无论如何,我想性能方面的差异可以忽略不计。谢谢。我会考虑这种方法。
【解决方案2】:

我们有一个Knowledgebase Article 详细说明了一些 Linux 安装的设置过程;它还有一段视频,解释了设置的某些方面。如果其他回答没有为您提供完整的解决方案,希望我们的文章至少可以让您朝着正确的方向开始。

另外请记住,根据您的 OE 版本,驱动程序库可能会有所不同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-01
    • 1970-01-01
    • 2011-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多