Ok, Dims,

here you go... Please re-apply the patch!
What happened? ...hope nothing else is broken now ;)

Thanks!
--
Torsten
Index: esql.xsl
===================================================================
RCS file: 
/home/cvspublic/xml-cocoon2/src/org/apache/cocoon/components/language/markup/xsp/java/esql.xsl,v

retrieving revision 1.11
diff -u -r1.11 esql.xsl
--- esql.xsl    2001/07/10 14:04:15     1.11
+++ esql.xsl    2001/07/17 18:22:59
@@ -502,20 +502,28 @@
         </xsl:otherwise>
       </xsl:choose>
       if (_esql_query.results) {
-        _esql_query.resultset = _esql_query.statement.getResultSet();
-        _esql_query.resultset_metadata = _esql_query.resultset.getMetaData();
-        _esql_query.position = 0;
-        if (_esql_connection.use_limit_clause == 0 &amp;&amp; _esql_query.skip_rows 
&gt; 0) {
-          while (_esql_query.resultset.next()) {
-            _esql_query.position++;
-            if (_esql_query.position == _esql_query.skip_rows) {
-              break;
+        do {
+          _esql_query.resultset = _esql_query.statement.getResultSet();
+          _esql_query.resultset_metadata = _esql_query.resultset.getMetaData();
+          _esql_query.position = 0;
+          if (_esql_connection.use_limit_clause == 0 &amp;&amp; _esql_query.skip_rows 
+&gt; 0) {
+            while (_esql_query.resultset.next()) {
+              _esql_query.position++;
+              if (_esql_query.position == _esql_query.skip_rows) {
+                break;
+              }
             }
           }
-        }
-        <xsl:apply-templates select="esql:results"/>
-        <xsl:apply-templates select="esql:no-results"/>
-        _esql_query.resultset.close();
+
+          if (_esql_query.resultset.next()) {
+            <xsl:apply-templates select="esql:results"/>
+          }
+          else {
+            <xsl:apply-templates select="esql:no-results"/>
+          }
+
+          _esql_query.resultset.close();
+        } while(_esql_query.statement.getMoreResults());
       } else {
         _esql_query.position = _esql_query.statement.getUpdateCount();
         if (_esql_query.position &gt;= 0) {
@@ -562,11 +570,7 @@
 </xsl:template>
 
 <xsl:template match="esql:execute-query//esql:no-results">
-  <xsp:logic>
-    if (_esql_query.position == _esql_query.skip_rows) {
-      <xsl:apply-templates/>
-    }
-  </xsp:logic>
+  <xsl:apply-templates/>
 </xsl:template>
 
 <xsl:template match="esql:update-results//esql:get-update-count">
@@ -575,14 +579,15 @@
 
 <xsl:template match="esql:results//esql:row-results">
   <xsp:logic>
-    while (_esql_query.resultset.next()) {
+    do {
       <xsl:apply-templates/>
       if (_esql_connection.use_limit_clause == 0 &amp;&amp; _esql_query.max_rows != 
-1 &amp;&amp; _esql_query.position - _esql_query.skip_rows == _esql_query.max_rows-1) 
{
         _esql_query.position++;
         break;
       }
       _esql_query.position++;
-    }
+    } while (_esql_query.resultset.next());
+
     if (_esql_query.resultset.next()) {
       <xsl:apply-templates select="following-sibling::esql:more-results" 
mode="more"/>
       _esql_query.position++;
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to