2011-10-28 75 views
0

鑑於我的底層關係數據庫是MySQL,是否可以使用PHP作爲宿主語言爲JasperServer創建MDX查詢?來自PHP的MDX查詢

我想要做的就是發送查詢到JasperServer爲了創建一個OLAP視圖並接收視圖作爲結果(最好以某種基於文本的格式,如對圖像或PDF)。

我正在使用JasperServer CE 4.2.1。

作爲一個便箋,考慮從您的應用程序開始製作MDX查詢,就像您會進行SQL查詢一樣,是否正確?如果是,是否有任何方法可以使用PHP將MDX查詢發送到任何OLAP服務器?

編輯:添加缺少的信息:我使用MySQL作爲關係數據庫服務器。

+0

什麼是您的OLAP服務器? – ic3

+0

我使用基於Mondrian的Jaspersoft OLAP。 – Epicurus

+0

Mondrian兼容XMLA/MDX(請參閱olap4j),但我現在沒有使用PHP XMLA庫。 – ic3

回答

2

很可能你的OLAP服務器支持XMLA。而XMLA並不僅限於具有特定格式的SOAP。我不知道一個支持XMLA的php庫,所以你必須付出艱辛的努力:

最重要的工作是編組/解編XML - >標準由微軟定義,幾乎所有其他供應商 - >http://msdn.microsoft.com/en-us/library/ms187178%28v=sql.90%29.aspx

也許你可以過分簡化你的需求。

0

這看起來像Jasper的TechSupport問題,但我認爲你可以使用SQLServer的OpenRowSet將參數傳遞給ConnectionString「PROVIDER = MSOLAP; Data Source = ... etc」... 祝你好運! :)

+0

我忘了在我的問題提到這一點,但我不得不使用MySQL的..所以我沒有訪問SQLServer的功能:) – Epicurus

+0

[代碼] <?PHP \t嘗試{ \t \t $ objConn =新的COM (「ADODB.Connection」)或死(「無法啓動ADO」); \t \t $ objConn-> open('Provider = MSOLAP; Initial Catalog = LocalHost; Data Source = DataOLAP;'); \t \t echo'

連接成功

'。「\ n」; \t \t $ mdx =「選擇{}在列... etc.etc.etc」; \t \t $ objRst = new COM(「ADODB.Recordset」)or die(「Can not start ADO」); \t \t $ objRst-> Open($ mdx,$ objConn,0); \t \t while(!$ objRst-> EOF){ \t \t $ objRst-> movenext(); \t \t} \t \t $ objRst-> close(); \t \t unset($ objRst); \t \t $ objConn-> close(); \t \t unset($ objConn); \t} \t catch(Exception $ e){ \t \t echo $ e-> getMessage(); \t} ?> –

+0

謝謝。至少現在我知道可以從PHP製作MDX查詢。但不幸的是沒有使用Jasper和MySQL服務器。 – Epicurus