Package org.olap4j

Examples of org.olap4j.PreparedOlapStatement


  }

  protected QueryResultWrapper performQuery(final String rawMdxQuery, final DataRow parameters)
      throws ReportDataFactoryException, SQLException
  {
    final PreparedOlapStatement statement = getStatement(rawMdxQuery, parameters);
    final OlapParameterMetaData data = statement.getParameterMetaData();
    final int count = data.getParameterCount();
    for (int i = 0; i < count; i++)
    {
      final String parameterName = data.getParameterName(i + 1);
      statement.setObject(i + 1, parameters.get(parameterName));
    }

    final Object queryTimeout = parameters.get(DataFactory.QUERY_TIMEOUT);
    final int queryTimeoutValue;
    if (queryTimeout instanceof Number)
    {
      final Number i = (Number) queryTimeout;
      queryTimeoutValue = i.intValue();
    }
    else
    {
      // means unlimited ...
      queryTimeoutValue = 0;
    }

    if (queryTimeoutValue > 0)
    {
      statement.setQueryTimeout(queryTimeoutValue);
    }


    final OlapParameterMetaData olapParameterMetaData = statement.getParameterMetaData();
    final int paramCount = olapParameterMetaData.getParameterCount();
    for (int i = 1; i <= paramCount; i++)
    {
      final String paramName = olapParameterMetaData.getParameterName(i);
      Object parameterValue = parameters.get(paramName);
      if (parameterValue != null)
      {
        final Type parameterType = olapParameterMetaData.getParameterOlapType(i);
        if (parameterType instanceof StringType)
        {
          if (!(parameterValue instanceof String))
          {
            throw new ReportDataFactoryException(parameterValue + " is incorrect for type " + parameterType);
          }
        }
        if (parameterType instanceof NumericType)
        {
          if (!(parameterValue instanceof Number))
          {
            throw new ReportDataFactoryException(parameterValue + " is incorrect for type " + parameterType);
          }
        }

        if (parameterType instanceof MemberType)
        {
          if (parameterValue instanceof String)
          {
            final MemberType type = (MemberType) parameterType;
            final Hierarchy hierarchy = type.getHierarchy();
            final Cube cube = statement.getCube();
            parameterValue = findMember(hierarchy, cube, String.valueOf(parameterValue));
          }
          else if (!(parameterValue instanceof Member))
          {
            throw new ReportDataFactoryException(parameterValue + " is incorrect for type " + parameterType);
          }
        }
        if (parameterType instanceof SetType)
        {
          if (parameterValue instanceof String)
          {
            final SetType type = (SetType) parameterType;
            final Hierarchy hierarchy = type.getHierarchy();
            final Cube cube = statement.getCube();

            final String rawString = (String) parameterValue;
            final String[] memberStr = rawString.replaceFirst("^ *\\{", "").replaceFirst("} *$", "").split(",");
            final List<Member> list = new ArrayList<Member>(memberStr.length);

            for (int j = 0; j < memberStr.length; j++)
            {
              final String str = memberStr[j];
              final Member member = findMember(hierarchy, cube, String.valueOf(str));
              list.add(member);
            }

            parameterValue = list;
          }
          else if (!(parameterValue instanceof Member))
          {
            throw new ReportDataFactoryException(parameterValue + " is incorrect for type " + parameterType);
          }
        }

      }
      statement.setObject(i, parameterValue);
    }

    return new QueryResultWrapper(statement, statement.executeQuery());
  }
View Full Code Here


      }
      if (getJdbcUserField() != null)
      {
        params.add(getJdbcUserField());
      }
      final PreparedOlapStatement statement = connection.prepareOlapStatement(translatedQuery);

      final OlapParameterMetaData data = statement.getParameterMetaData();
      final int count = data.getParameterCount();
      for (int i = 0; i < count; i++)
      {
        final String parameterName = data.getParameterName(i + 1);
        params.add(parameterName);
View Full Code Here

    {
      // ignore, but log.
    }
    try
    {
      final PreparedOlapStatement statement = resultWrapper.getStatement();
      statement.close();
    }
    catch (SQLException e)
    {
      // ignore ..
    }
View Full Code Here

    {
      // ignore, but log.
    }
    try
    {
      final PreparedOlapStatement statement = resultWrapper.getStatement();
      statement.close();
    }
    catch (SQLException e)
    {
      // ignore ..
    }
View Full Code Here

  }

  protected QueryResultWrapper performQuery(final String rawMdxQuery, final DataRow parameters)
      throws ReportDataFactoryException, SQLException
  {
    final PreparedOlapStatement statement = getStatement(rawMdxQuery, parameters);
    final int queryTimeoutValue = calculateQueryTimeOut(parameters);
    if (queryTimeoutValue > 0)
    {
      statement.setQueryTimeout(queryTimeoutValue);
    }

    parametrizeQuery(parameters, statement);
    return new QueryResultWrapper(statement, statement.executeQuery());
  }
View Full Code Here

      }
      if (getJdbcUserField() != null)
      {
        params.add(getJdbcUserField());
      }
      final PreparedOlapStatement statement = connection.prepareOlapStatement(translatedQuery);

      final OlapParameterMetaData data = statement.getParameterMetaData();
      final int count = data.getParameterCount();
      for (int i = 0; i < count; i++)
      {
        final String parameterName = data.getParameterName(i + 1);
        params.add(parameterName);
View Full Code Here

TOP

Related Classes of org.olap4j.PreparedOlapStatement

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.