如何从Drupal站点中访问单独的MS SQL数据库中的数据


How to access data in a separate MS SQL database from within a Drupal site?

我想建立一个Drupal站点,让我们的一些客户可以从外部访问他们的信息。我决定在Drupal中实现这个功能,以充分发挥它所提供的所有功能。然而,我们目前的系统是在mssql中,Drupal不支持它,甚至PHP也不支持它。

所以我的问题是我应该如何链接这两个数据库(例如获取信息到Drupal模块等)。

  1. 将现有系统移动到MySQL以便于集成(目前不太可能)
  2. 简单地提供IFrames来拉入我需要的信息作为页面
  3. 获取PDO MSSQL在机器上工作,我已经安装了Drupal,并在需要时在Drupal模块中建立自己的连接。这是不赞成的吗?我可能想移动机器)
  4. 为我们的主系统创建一个API来获取它需要的信息。返回JSON的url集合

最简单的可能是3,但我想我可能会后悔,因为MSSQL支持正在回滚,看起来有点像黑客。

我想我会选4,但我想知道人们是否觉得这是一个好计划。从表演的角度来看,它是否真实?有人能建议一个好的API框架/路线吗?

Forena模块可用于查询(而不是更新)各种数据库,例如MS SQL数据库,并建立与外部数据库的数据库连接。它附带了各种钩子,可以从另一个模块中使用Forena。

有关Forena的更多详细信息,可以使用两种类型的文档:

  • 社区文档。
  • 与Forena一起提供的文档,您可以在安装和启用模块后立即访问该文档。查看演示站点以获取当前的在线示例:

    • 法医文档 -使用链接'报告文档'或访问相关链接/报告/帮助。
    • 取证样本 -使用链接"报告样本"或访问相关链接/报告/样本(这些样本功能齐全,所以一定要用它做一点实验,比如SVG图形样本上可用的钻取)。

最新的7.x-4。x版本还包括一个惊人的(我认为)UI,用于创建报告(所见即所得的报告编辑器)和/或创建SQL查询(查询生成器)。

以下是MS SQL数据库部分的一些变化:
  1. 使用SQLite而不是MS SQL数据库:Forena样本实际上包括一个(微小的)SQLite数据库。去看看演示站点:显示的数据包含在sampledb中,是SQLite格式的。
  2. Forena带有一套完整的支持数据库连接…如MySQL, Oracle, Postgress或任何PDO兼容的变体。

有足够的理由考虑给Forena一个尝试吗?在这样做的同时,使用它的问题队列来处理任何类型的支持/文档请求。

请注意:我是Forena的共同维护者。

这并没有真正回答您的实际问题,但您可能需要查看https://drupal.stackexchange.com/questions/1631/mssql-or-sql-server-wrapper-for-custom-module.

不知道你说的"MSSQL支持正在回滚"是什么意思,但微软最近创建了一个PDO驱动程序,主要原因是Drupal 7