1

DRILLTHROUGHMondrian でクエリを使用するにはどうすればよいですか? たとえば、この MDX クエリ

DRILLTHROUGH
SELECT
  measures.MEMBERS ON 0
FROM
  events

例外を生成します:

java.lang.ClassCastException: mondrian.olap.DrillThrough cannot be cast to mondrian.olap.Query
    at mondrian.olap4j.MondrianOlap4jStatement$1.execute(MondrianOlap4jStatement.java:362)
    at mondrian.olap4j.MondrianOlap4jStatement$1.execute(MondrianOlap4jStatement.java:360)
    at mondrian.server.Locus.execute(Locus.java:87)
    at mondrian.server.Locus.execute(Locus.java:72)
    at mondrian.olap4j.MondrianOlap4jStatement.parseQuery(MondrianOlap4jStatement.java:356)
    at mondrian.olap4j.MondrianOlap4jStatement.executeOlapQuery(MondrianOlap4jStatement.java:346)

コードでは、次のように MDX 文字列をステートメントに渡しています。

OlapConnection connection = DriverManager.getConnection(connection_string).unwrap(OlapConnection.class);
connection.createStatement.executeOlapQuery(mdx);

を呼び出すことも実験しdrillThroughましたCellが、これにより例外が発生しますorg.postgresql.util.PSQLException: FATAL: sorry, too many clients already。接続を適切に管理していない可能性がありますか? 私の他の質問を参照してください: Mondrian OLAP connection management

4

1 に答える 1

2

ドリルスルー操作は ResultSet (通常の JDBC API を実装) を返すため、代わりにこれを使用する必要があります。

olapConnection.createStatement().executeQuery(String mdx)
于 2013-05-28T13:28:10.813 に答える