tcurdt      02/01/28 01:37:17

  Modified:    src/java/org/apache/cocoon/components/language/markup/xsp
                        EsqlQuery.java
               src/java/org/apache/cocoon/components/language/markup/xsp/java
                        esql.xsl
  Log:
  added support for getting the complete row count
  (for a link to the last page when paging)
  
  Revision  Changes    Path
  1.2       +24 -0     
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.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- EsqlQuery.java    3 Jan 2002 12:31:10 -0000       1.1
  +++ EsqlQuery.java    28 Jan 2002 09:37:16 -0000      1.2
  @@ -184,6 +184,30 @@
       return(this.hasResultSet);
     }
   
  +  public int rowCount() throws SQLException {
  +    switch(limitMethod) {
  +      case EsqlConnection.LIMIT_METHOD_JDBC:
  +          // TC: I'm not quite sure if synchronized is really necessary since
  +          // the XSP page will be poolable
  +          synchronized (resultSet) {
  +            int currentRow = resultSet.getRow();
  +            resultSet.last();
  +            int count = resultSet.getRow();
  +            if (currentRow > 0) {
  +              resultSet.absolute(currentRow);
  +            }
  +            else {
  +              resultSet.first();
  +             resultSet.relative(-1);
  +            }
  +            return(count);
  +          }
  +      default:
  +        // select count(*)
  +        throw new RuntimeException("not yet implemented");
  +    };
  +  }
  +
     public void getResultRows() throws SQLException {
       resultSet = statement.getResultSet();
       resultSetMetaData = resultSet.getMetaData();
  
  
  
  1.4       +5 -1      
xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/xsp/java/esql.xsl
  
  Index: esql.xsl
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/xsp/java/esql.xsl,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- esql.xsl  8 Jan 2002 11:39:47 -0000       1.3
  +++ esql.xsl  28 Jan 2002 09:37:16 -0000      1.4
  @@ -1,5 +1,5 @@
   <?xml version="1.0"?>
  -<!-- $Id: esql.xsl,v 1.3 2002/01/08 11:39:47 tcurdt Exp $-->
  +<!-- $Id: esql.xsl,v 1.4 2002/01/28 09:37:16 tcurdt Exp $-->
   <!--
   
    ============================================================================
  @@ -559,6 +559,10 @@
   </xsl:template>
   
   <xsl:template match="esql:query//esql:parameter">"?"</xsl:template>
  +
  +<xsl:template match="esql:execute-query//esql:results//esql:row-count">
  +  <xsp:expr>_esql_query.rowCount()</xsp:expr>
  +</xsl:template>
   
   <xsl:template match="esql:execute-query//esql:results">
     <xsp:content>
  
  
  

----------------------------------------------------------------------
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