haul        02/05/17 07:30:54

  Modified:    src/java/org/apache/cocoon/components/language/markup/xsp
                        EsqlQuery.java
  Log:
  improve multiple result case
  
  Revision  Changes    Path
  1.16      +34 -12    
xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/xsp/EsqlQuery.java
  
  Index: EsqlQuery.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/xsp/EsqlQuery.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- EsqlQuery.java    16 May 2002 16:01:17 -0000      1.15
  +++ EsqlQuery.java    17 May 2002 14:30:53 -0000      1.16
  @@ -66,15 +66,19 @@
    *
    * based on the orginal esql.xsl
    * @author <a href="mailto:[EMAIL PROTECTED]";>Torsten Curdt</a>
  - * @version CVS $Id: EsqlQuery.java,v 1.15 2002/05/16 16:01:17 haul Exp $
  + * @version CVS $Id: EsqlQuery.java,v 1.16 2002/05/17 14:30:53 haul Exp $
    */
   
   public class EsqlQuery {
  +  private static final int UPDATE_COUNT_UNSET = -2;
  +
     private Connection connection = null;
     private Statement statement = null;
     private PreparedStatement preparedStatement = null;
     private ResultSet resultSet = null;
     private ResultSetMetaData resultSetMetaData = null;
  +  private int updateCount = EsqlQuery.UPDATE_COUNT_UNSET;
  +  private int resultCount = 1;
     private boolean hasResultSet = false;
     private boolean resultSetValid = false;
     private int position = -1;
  @@ -82,8 +86,8 @@
     private int skipRows = 0;
     private boolean keepgoing = true;
   
  -    private ArrayList groups = null;
  -    private int groupLevel = -1;
  +  private ArrayList groups = null;
  +  private int groupLevel = -1;
   
     private String query;
     private int limitMethod;
  @@ -104,15 +108,15 @@
     }
   
   
  -    class EsqlGroup {
  -        public String var = null;
  -        public Object value = null;
  +  class EsqlGroup {
  +    public String var = null;
  +    public Object value = null;
           
  -        EsqlGroup ( String var, Object value ) {
  -            this.var = var;
  -            this.value = value;
  -        }
  -    }
  +    EsqlGroup ( String var, Object value ) {
  +      this.var = var;
  +      this.value = value;
  +      }
  +  }
   
     public int getSkipRows() {
       return(skipRows);
  @@ -274,8 +278,26 @@
       return(statement);
     }
   
  +  public int getUpdateCount() throws SQLException {
  +    if (this.updateCount == EsqlQuery.UPDATE_COUNT_UNSET) {
  +      this.updateCount = this.statement.getUpdateCount();
  +    }
  +    return this.updateCount;
  +  }
  +
  +  public int getResultCount() {
  +    return this.resultCount;
  +  }
  +
     public boolean getMoreResults() throws SQLException {
  -    return (statement!=null? statement.getMoreResults() : false);
  +    this.updateCount=EsqlQuery.UPDATE_COUNT_UNSET;
  +    if (this.statement==null)
  +        return false;
  +    this.hasResultSet = this.statement.getMoreResults();
  +    this.updateCount=this.getUpdateCount();
  +    this.resultCount++;
  +    this.resultSetValid=false;
  +    return (this.hasResultSet || (this.updateCount>-1));
     }
   
     public boolean execute() throws SQLException {
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     [EMAIL PROTECTED]
To unsubscribe, e-mail:          [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to