code: function(rowCallback, scope, args){
          if (_isUnd(scope)) scope = this;
          var mArgs = [null];
          if (!_isUnd(args)) {
              if (!_isArr(args)) args = [args];
              mArgs = mArgs.concat(args);
          }
          while (this.hasMoreRows()){
              mArgs[0] = this.readAsObject();
              if (rowCallback.apply(scope, mArgs)===false) return false;
              this.nextRow();
          }
          return true;
      }
docs: <p>Walks through all rows, and calls the callback function for each row.</p>
  
  <p>The callback function gets passed an object that represents the row.
  The keys of the row object are the column names, and the values are the respective column values.</p>
  <p>The scope for calling the callback can be passed  as the second argument to this method.
  If the scope is not defined (or if it is <code>null</code>), the Rowset's <code>this</code> pointer is used instead.</p>
  <p>You can pass additional data to the callback by passing in a third argument. This is then passed as is as second argument to the callback.</p>
  
  <p>The <code>eachRow</code> method will iterate untill the callback returns <code>false</code>, or until all rows have been traversed.
  If the callback returns <code>false</code>, iteration is aborted and <code>eachRow</code> as a whole returns <code>false</code> too.
  If iteration is not aborted, then eachRow returns <code>true</code>.</p>
  
  @method eachRow
  @param {function()} callback Function to be called for each row.
  @param {Object} scope Optional. Scope in which the callback is called. Defaults to this, that is, the Rowset.
  @param {Object} args Optional. Object that is passed as extra argument to the callback.
  @return {bool} true if all rows were itereated. If the callback returns false, iteration stops and false is returned.