haul        02/05/17 07:31:44

  Modified:    src/java/org/apache/cocoon/components/language/markup/xsp/java
                        esql.xsl
  Log:
  improve multiple result case
  
  Revision  Changes    Path
  1.23      +44 -37    
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.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- esql.xsl  16 May 2002 16:10:07 -0000      1.22
  +++ esql.xsl  17 May 2002 14:31:44 -0000      1.23
  @@ -1,6 +1,6 @@
   <?xml version="1.0"?>
   
  -<!-- $Id: esql.xsl,v 1.22 2002/05/16 16:10:07 haul Exp $-->
  +<!-- $Id: esql.xsl,v 1.23 2002/05/17 14:31:44 haul Exp $-->
   <!--
   
    ============================================================================
  @@ -56,7 +56,7 @@
    * ESQL Logicsheet
    *
    * @author ?
  - * @version CVS $Revision: 1.22 $ $Date: 2002/05/16 16:10:07 $
  + * @version CVS $Revision: 1.23 $ $Date: 2002/05/17 14:31:44 $
   -->
   
   <xsl:stylesheet version="1.0"
  @@ -394,6 +394,45 @@
     <xsl:call-template name="set-query-parameter"/>
   </xsl:template>
   
  +<xsl:template name="do-results">
  +   do {
  +     if (_esql_query.hasResultSet()) {
  +        _esql_query.getResultRows();
  +        if (_esql_query.nextRow()) {
  +           switch (_esql_query.getResultCount()) {
  +           <xsl:for-each select="esql:results">
  +             case <xsl:value-of select="position()"/>: <xsl:apply-templates 
select="."/>
  +                 break;
  +           </xsl:for-each>
  +           }
  +        }
  +        else {
  +           <xsl:for-each select="esql:no-results">
  +             case <xsl:value-of select="position()"/>: <xsl:apply-templates 
select="."/>
  +                 break;
  +           </xsl:for-each>
  +        }
  +        _esql_query.getResultSet().close();
  +     } else {
  +        if (_esql_query.getUpdateCount() &gt;= 0) {
  +           switch (_esql_query.getResultCount()) {
  +           <xsl:for-each select="esql:update-results">
  +             case <xsl:value-of select="position()"/>: <xsl:apply-templates 
select="."/>
  +                 break;
  +           </xsl:for-each>
  +           }
  +        } else {
  +           switch (_esql_query.getResultCount()) {
  +           <xsl:for-each select="esql:no-results">
  +             case <xsl:value-of select="position()"/>: <xsl:apply-templates 
select="."/>
  +                 break;
  +           </xsl:for-each>
  +           }
  +        }
  +     }
  +   } while(_esql_query.getMoreResults());
  +</xsl:template>
  +
   
   <xsl:template match="esql:connection//esql:execute-query">
   
  @@ -451,27 +490,9 @@
             <xsl:apply-templates select="esql:call-results"/>
           </xsp:content>
         </xsl:if>
  -      if (_esql_query.hasResultSet()) {
  -        do {
  -          _esql_query.getResultRows();
   
  -          if (_esql_query.nextRow()) {
  -            <xsl:apply-templates select="esql:results"/>
  -          }
  -          else {
  -            <xsl:apply-templates select="esql:no-results"/>
  -          }
  -          _esql_query.getResultSet().close();
  +      <xsl:call-template name="do-results"/>
   
  -        } while(_esql_query.getMoreResults());
  -      } else {
  -        if (_esql_query.getStatement().getUpdateCount() &gt;= 0) {
  -          <xsl:apply-templates select="esql:update-results/*"/>
  -        }
  -        else{
  -          <xsl:apply-templates select="esql:no-results"/>
  -        }
  -      }
         _esql_query.getStatement().close();
       } catch (SQLException _esql_exception_<xsl:value-of select="generate-id(.)"/>) {
           <xsl:choose>
  @@ -539,7 +560,7 @@
   </xsl:template>
   
   <xsl:template match="esql:update-results//esql:get-update-count">
  -  <xsp:expr>_esql_query.getStatement().getUpdateCount()</xsp:expr>
  +  <xsp:expr>_esql_query.getUpdateCount()</xsp:expr>
   </xsl:template>
   
   
  @@ -927,21 +948,7 @@
       }
     _esql_query = new EsqlQuery((ResultSet) <xsl:apply-templates 
select="esql:result/*"/>);
       {
  -      if (_esql_query.hasResultSet()) {
  -        do {
  -          _esql_query.getResultRows();
  -
  -          if (_esql_query.nextRow()) {
  -            <xsl:apply-templates select="esql:row-results"/>
  -          } else {
  -            <xsl:apply-templates select="esql:no-results"/>
  -          }
  -          _esql_query.getResultSet().close();
  -
  -        } while(_esql_query.getMoreResults());
  -      } else {
  -        <xsl:apply-templates select="esql:no-results"/>
  -      }
  +       <xsl:call-template name="do-results"/>
       }
       if (_esql_queries.empty()) {
         _esql_query = null;
  
  
  

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