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() >= 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() >= 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]