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]