/** Set the dataReader to point to the row where load has to be started */ private void rowToStart(Config cfg, DataReader daoReader) throws DataAccessObjectException { // start at the correct row final int rowToStart; try { rowToStart = cfg.getInt(Config.LOAD_ROW_TO_START_AT); } catch (final ParameterLoadException e) { return; } if (rowToStart > 0) { // keep skipping over rows until we run into an invalid row or we have gotten // to the starting row while (daoReader.getCurrentRowNumber() < rowToStart) { if (!DAORowUtil.isValidRow(daoReader.readRow())) break; } } }
public void skipRowToStartOffset( Config cfg, DataReader rdr, ILoaderProgress mon, boolean updateProgress) throws LoadException { try { cfg.setValue(LastRun.LAST_LOAD_BATCH_ROW, 0); rowToStart(cfg, rdr); if (updateProgress) { // set the last processed value to the starting row int currentRow = rdr.getCurrentRowNumber(); if (mon != null && currentRow > 0) mon.worked(currentRow); cfg.setValue(LastRun.LAST_LOAD_BATCH_ROW, currentRow); cfg.saveLastRun(); } } catch (final DataAccessObjectException e) { handleError(e, "errorDaoStartRow"); } catch (final IOException e) { handleError(e, "errorLastRun"); } }