来自 PHP 的 MDX 查询
Posted
技术标签:
【中文标题】来自 PHP 的 MDX 查询【英文标题】:MDX query from PHP 【发布时间】:2011-10-28 15:47:13 【问题描述】:鉴于我的底层关系数据库是 mysql,是否可以使用 php 作为宿主语言为 JasperServer 创建 MDX 查询?
我想要做的是将查询发送到 JasperServer 以创建 OLAP 视图并接收视图作为结果(最好是一些基于文本的格式,而不是图像或 PDF)。
我正在使用 JasperServer CE 4.2.1。
附带说明一下,考虑从您的应用程序进行 MDX 查询是否正确,就像您进行 SQL 查询一样?如果是,有没有办法使用 PHP 对任何 OLAP 服务器进行 MDX 查询?
编辑:添加了缺失的信息:我使用 MySQL 作为关系数据库服务器。
【问题讨论】:
我正在使用基于 Mondrian 的 Jaspersoft OLAP。 蒙德里安兼容 XMLA/MDX(参见 olap4j),但我现在不支持 php XMLA 库。 【参考方案1】:您的 OLAP 服务器很可能支持 XMLA。并且 XMLA 只不过是具有特定格式的 SOAP。我不知道支持 XMLA 的 php 库,所以你必须努力:
最重要的工作是编组/解组 XML -> 该标准由 Microsoft 定义,几乎所有其他供应商都遵循 -> http://msdn.microsoft.com/en-us/library/ms187178%28v=sql.90%29.aspx
也许您可以根据自己的需要过度简化。
【讨论】:
【参考方案2】:这看起来像是 Jasper 的技术支持的一个问题,但我认为您可以使用 SQLServer 的 OpenRowSet 将参数传递给 ConnectionString "PROVIDER=MSOLAP;Data Source=...etc."... 祝你好运! :)
【讨论】:
我忘了在我的问题中提到这一点,但我只能使用 MySql.. 所以我无法访问 SQLServer 功能:) [code]open('Provider=MSOLAP;初始目录=LocalHost;数据源=DataOLAP;'); echo '连接成功
'."\n"; $mdx = "选择 On Columns... etc.etc.etc"; $objRst = new COM ("ADODB.Recordset") 或 die("无法启动 ADO"); $objRst->Open($mdx, $objConn, 0);而 (!$objRst->EOF) $objRst->movenext(); $objRst->close();未设置($objRst); $objConn->close();未设置($objConn); catch (Exception $e) echo $e->getMessage(); ?> 谢谢。至少现在我知道可以从 PHP 进行 MDX 查询。但遗憾的是没有使用 Jasper 和 MySQL Server。以上是关于来自 PHP 的 MDX 查询的主要内容,如果未能解决你的问题,请参考以下文章