001 /*
002 // $Id: OlapStatement.java 229 2009-05-08 19:11:29Z jhyde $
003 // This software is subject to the terms of the Eclipse Public License v1.0
004 // Agreement, available at the following URL:
005 // http://www.eclipse.org/legal/epl-v10.html.
006 // Copyright (C) 2006-2008 Julian Hyde
007 // All Rights Reserved.
008 // You must accept the terms of that agreement to use this software.
009 */
010 package org.olap4j;
011
012 import java.sql.Statement;
013
014 import org.olap4j.mdx.SelectNode;
015
016 /**
017 * Object used for statically executing an MDX statement and returning a
018 * {@link CellSet}.
019 *
020 * <p>An <code>OlapStatement</code> is generally created using
021 * {@link OlapConnection#createStatement()}.</p>
022 *
023 * @see PreparedOlapStatement
024 *
025 * @author jhyde
026 * @version $Id: OlapStatement.java 229 2009-05-08 19:11:29Z jhyde $
027 * @since Aug 22, 2006
028 */
029 public interface OlapStatement extends Statement, OlapWrapper {
030
031 /**
032 * Executes an OLAP statement.
033 *
034 * @param mdx MDX <code>SELECT</code> statement
035 *
036 * @return Cell set
037 *
038 * @throws OlapException if a database access error occurs,
039 * this method is called on a closed <code>OlapStatement</code>,
040 * the query times out (see {@link #setQueryTimeout(int)})
041 * or another thread cancels the statement (see {@link #cancel()})
042 */
043 CellSet executeOlapQuery(String mdx) throws OlapException;
044
045 /**
046 * Executes an OLAP statement expressed as a parse tree.
047 *
048 * <p>Validates the parse tree before executing it.
049 *
050 * @param selectNode Parse tree of MDX <code>SELECT</code> statement
051 *
052 * @return Cell set
053 *
054 * @throws OlapException if a database access error occurs,
055 * this method is called on a closed <code>OlapStatement</code>,
056 * the query times out (see {@link #setQueryTimeout(int)})
057 * or another thread cancels the statement (see {@link #cancel()})
058 */
059 CellSet executeOlapQuery(SelectNode selectNode) throws OlapException;
060 }
061
062 // End OlapStatement.java