balld 01/07/04 21:34:51
Modified: src/org/apache/cocoon/processor/xsp/library/sql esql.xsl
Log:
patch from torsten curdt to make results/no-results exclusive
Revision Changes Path
1.84 +27 -22
xml-cocoon/src/org/apache/cocoon/processor/xsp/library/sql/esql.xsl
Index: esql.xsl
===================================================================
RCS file:
/home/cvs/xml-cocoon/src/org/apache/cocoon/processor/xsp/library/sql/esql.xsl,v
retrieving revision 1.83
retrieving revision 1.84
diff -u -r1.83 -r1.84
--- esql.xsl 2001/06/19 20:27:14 1.83
+++ esql.xsl 2001/07/05 04:34:51 1.84
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- $Id: esql.xsl,v 1.83 2001/06/19 20:27:14 bloritsch Exp $-->
+<!-- $Id: esql.xsl,v 1.84 2001/07/05 04:34:51 balld Exp $-->
<!--
============================================================================
@@ -201,7 +201,7 @@
<xsl:when test="$environment = 'cocoon2'">
private static ComponentSelector _esql_selector = null;
- public void compose(ComponentManager manager)
org.apache.avalon.framework.component.ComponentException {
+ public void compose(ComponentManager manager) throws
org.apache.avalon.framework.component.ComponentException {
super.compose(manager);
if (_esql_selector == null) {
try {
@@ -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 && _esql_query.skip_rows
> 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 &&
_esql_query.skip_rows > 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()) { /* desire */
+ <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 >= 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 && _esql_query.max_rows !=
-1 && _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++;
@@ -851,7 +856,7 @@
<xsp:expr><xsl:call-template
name="get-resultset"/>.getMetaData().getColumnTypeName(<xsl:value-of
select="@column"/>)</xsp:expr>
</xsl:template>
-<xspdoc:desc>allows null-column testing. Evaluates to a Java expression, which is
true when the referred column contains a null-value for the current resultset
row</xspdoc:desc>
+<xspdoc:desc>allows null-column testing. Evaluates to a Java expression, which is
true when the referred column contains a null-value for the current resultset
row</xspdoc:desc>
<xsl:template match="esql:row-results//esql:is-null">
<xsp:expr>((<xsl:call-template name="get-resultset"/>.getObject("<xsl:value-of
select="@column"/>") == null) || <xsl:call-template
name="get-resultset"/>.wasNull())</xsp:expr>
</xsl:template>
----------------------------------------------------------------------
In case of troubles, e-mail: [EMAIL PROTECTED]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]