Package org.pentaho.commons.connection.memory

Examples of org.pentaho.commons.connection.memory.MemoryResultSet


    for ( int i = 0; i < rHeaders.size(); i++ ) {
      rowHeaders[i][0] = rHeaders.get( i );
    }

    IPentahoMetaData metaData = new MemoryMetaData( columnHeaders, rowHeaders );
    MemoryResultSet result = new MemoryResultSet( metaData );
    for ( int i = 0; i < data.size(); i++ ) {
      result.addRow( ( (List) data.get( i ) ).toArray() );
    }
    return result;
  }
View Full Code Here


      }

      resultSet = executor.executeQuery( queryObject );
      if ( resultSet != null && !live && executor.isLive() ) {
        // read the results and cache them
        MemoryResultSet cachedResultSet = new MemoryResultSet( resultSet.getMetaData() );
        Object[] rowObjects = resultSet.next();
        while ( rowObjects != null ) {
          cachedResultSet.addRow( rowObjects );
          rowObjects = resultSet.next();
        }
        resultSet.close();
        resultSet.closeConnection();
        resultSet = cachedResultSet;
View Full Code Here

  @Override
  public IPentahoResultSet
  doQuery( final SQLConnection sqlConnection, final String query, boolean forwardOnlyResultset ) throws Exception {

    MemoryResultSet resultSet = null;
    int n = ( (SQLConnection) connection ).execute( query );

    Object[][] columnHeaders = new Object[1][1];
    columnHeaders[0][0] = "result"; //$NON-NLS-1$
    IPentahoMetaData metadata = new MemoryMetaData( columnHeaders, null );

    resultSet = new MemoryResultSet( metadata );

    Object[] rowObjects = new Object[1];
    rowObjects[0] = new Integer( n );
    resultSet.addRow( rowObjects );
    return resultSet;

  }
View Full Code Here

        new String[] { Messages.getInstance().getString( "SQLExecute.USER_AFFECTED_ROWS_COLUMN_NAME" ), //$NON-NLS-1$
          Messages.getInstance().getString( "SQLExecute.USER_AFFECTED_ROW_STATUS" ) //$NON-NLS-1$
        };
    MemoryMetaData metaData = new MemoryMetaData( new String[][] { columnHeaders }, null );
    metaData.setColumnTypes( new String[] { "int", "string" } ); //$NON-NLS-1$ //$NON-NLS-2$
    MemoryResultSet affectedRowsResultSet = new MemoryResultSet( metaData );
    String successMsg = Messages.getInstance().getString( "SQLExecute.USER_SUCCESS" ); //$NON-NLS-1$
    String failMsg = Messages.getInstance().getString( "SQLExecute.USER_FAILED" ); //$NON-NLS-1$
    try {
      if ( conn == null ) {
        error( Messages.getInstance().getErrorString( "SQLBaseComponent.ERROR_0007_NO_CONNECTION" ) ); //$NON-NLS-1$
        return false;
      }
      if ( !conn.initialized() ) {
        error( Messages.getInstance().getErrorString( "SQLBaseComponent.ERROR_0007_NO_CONNECTION" ) ); //$NON-NLS-1$
        return false;
      }

      if ( sqlExecuteAction.getForceSingleStatement().getBooleanValue( false ) ) {
        // Forces original execution path.
        //
        // This execution path should be used if the query
        // has a semi-colon in the text of the SQL statement.
        //
        // This is a legitimate condition if there is (for example)
        // a statement with a where-clause that has a semi-colon.
        //
        // e.g.: UPDATE sometable SET somecolumn='val1;val2' WHERE somecolumn='val3;val4'
        //
        // In this case, using StringTokenizer on semi-colon will result in multiple un-executable
        // statements - the whole thing will fail.
        //
        // This is (arguably) unlikely, but it is possible. That's why I've chosen to make sure
        // that there is a mechanism for instating the old behavior.
        //
        String query = applyInputsToFormat( rawQuery );
        if ( ComponentBase.debug ) {
          debug( Messages.getInstance().getString( "SQLBaseComponent.DEBUG_RUNNING_QUERY", query ) ); //$NON-NLS-1$
        }
        int affectedRows = conn.execute( query );
        executed = true;
        affectedRowsResultSet.addRow( new Object[] { new Integer( affectedRows ), successMsg } );
      } else {
        //
        // Multiple statement execute support provided by contribution from Melanie Crouch
        //
        rawQuery = SQLExecute.removeLineTerminators( rawQuery.trim() ).toString();

        // tokenize the rawQuery passed into method to find if there are multiple updates to be executed.
        StringTokenizer st =
            new StringTokenizer( rawQuery, sqlExecuteAction.getMultiStatementSeparator().getStringValue( ";" ) ); //$NON-NLS-1$

        while ( st.hasMoreTokens() ) {
          // set rawQuery equal to the nextToken.
          rawQuery = st.nextToken();
          String query = applyInputsToFormat( rawQuery.trim() );
          if ( ComponentBase.debug ) {
            debug( Messages.getInstance().getString( "SQLBaseComponent.DEBUG_RUNNING_QUERY", query ) ); //$NON-NLS-1$
          }
          try {
            int affectedRows = conn.execute( query );
            // Normally, we'd check to see if the execution resulted in
            // some updated rows.
            affectedRowsResultSet.addRow( new Object[] { new Integer( affectedRows ), successMsg } );
            executed = true;
            debug( Messages.getInstance().getString( "SQLBaseComponent.DEBUG_UPDATED_QUERY", query ) ); //$NON-NLS-1$
          } catch ( SQLException e ) {
            error( Messages.getInstance().getErrorString(
                "SQLBaseComponent.ERROR_0006_EXECUTE_FAILED", getActionName() + " : " + e.getLocalizedMessage() ) ); //$NON-NLS-1$ //$NON-NLS-2$
View Full Code Here

    assertNotNull( context.getOutputNames() );
    assertEquals( 1, context.getOutputNames().size() );
    String outputName = (String) context.getOutputNames().iterator().next();
    assertEquals( "rule-result", outputName );

    MemoryResultSet result = (MemoryResultSet) context.getOutputParameter( outputName ).getValue();
    return result;
  }
View Full Code Here

    MemoryResultSet result = (MemoryResultSet) context.getOutputParameter( outputName ).getValue();
    return result;
  }

  private void assertSuccessResult( IRuntimeContext context, Object[][] data ) {
    MemoryResultSet result = getResult( context );
    assertNotNull( result );
    assertEquals( data.length, result.getRowCount() );
    for ( int rowIndex = 0; rowIndex < data.length; rowIndex++ ) {
      Object[] row = data[rowIndex];
      assertArrayEquals( row, result.getDataRow( rowIndex ) );
    }
  }
View Full Code Here

      assertArrayEquals( row, result.getDataRow( rowIndex ) );
    }
  }

  private void assertFailResult( IRuntimeContext context ) {
    MemoryResultSet result = getResult( context );
    assertNull( result );
  }
View Full Code Here

  }

  private IPentahoResultSet getResultSet() {
    Object[][] columnHeaders = new Object[][] { { "COL1", "COL2", "COL3" } }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
    IPentahoMetaData md = new MemoryMetaData( columnHeaders, null );
    MemoryResultSet rs = new MemoryResultSet( md );
    rs.addRow( new Object[] { "DATA1", "DATA2", new Date() } ); //$NON-NLS-1$ //$NON-NLS-2$
    rs.isScrollable();
    return rs;
  }
View Full Code Here

    columnHeadersList.add( "COL2" ); //$NON-NLS-1$
    columnHeadersList.add( "COL3" ); //$NON-NLS-1$
    MemoryMetaData md2 = new MemoryMetaData( columnHeaders, null );
    //    emd.getAttribute(1, 1, "COL1"); //$NON-NLS-1$
    // emd.setBusinessColumns(columnHeadersList);
    MemoryResultSet rs = new MemoryResultSet( md2 );
    rs.addRow( new Object[] { "DATA1", "DATA2", new Date() } ); //$NON-NLS-1$ //$NON-NLS-2$
    return rs;
  }
View Full Code Here

    List columnHeadersList = new ArrayList();
    columnHeadersList.add( "COL1" ); //$NON-NLS-1$
    columnHeadersList.add( "COL2" ); //$NON-NLS-1$
    columnHeadersList.add( "COL3" ); //$NON-NLS-1$
    MemoryMetaData md3 = new MemoryMetaData( columnHeadersList );
    MemoryResultSet rs = new MemoryResultSet( md3 );
    rs.addRow( new Object[] { "DATA1", "DATA2", new Date() } ); //$NON-NLS-1$ //$NON-NLS-2$
    return rs;
  }
View Full Code Here

TOP

Related Classes of org.pentaho.commons.connection.memory.MemoryResultSet

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.