Enke Michael wrote: > > Hi. > I had the problem that I have to receive rows from a table > where the number of columns is variable (because the query is > variabe). For this reason it is useful to have the element names > the same for each column. > I introduced the "tag-name" attribute in esql:get-columns. > > E.g. <esql:get-columns tag-name="column"/> will result in > <column> > col1 > </column> > <column> > col2 > </column> > ... > > ( Remark: the tag-case applies after this too. > <esql:get-columns tag-name="column" tag-case="upper"/> > results in <COLUMN>col1</COLUMN>... ) > > Could a commiter commit this please? > One question: If I get the dev-snapshot, which version do I get? > 2.0 or 2.1? > > Regards, > Michael > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, email: [EMAIL PROTECTED]
--- esql.xsl.orig Mon Sep 3 21:38:36 2001 +++ esql.xsl Tue Sep 4 09:18:41 2001 @@ -705,23 +705,33 @@ </xsp:content> </xsl:template> -<xspdoc:desc>results in a set of elements whose names are the names of the columns. the elements each have one text child, whose value is the value of the column interpreted as a string. No special formatting is allowed here. If you want to mess around with the names of the elements or the value of the text field, use the type-specific get methods and write out the result fragment yourself.</xspdoc:desc> +<xspdoc:desc>results in a set of elements whose names are the names of the columns or +tag-name if given . the elements each have one text child, whose value is the value +of the column interpreted as a string. No special formatting is allowed here. If you +want to mess around with the names of the elements or the value of the text field, +use the type-specific get methods and write out the result fragment +yourself.</xspdoc:desc> <xsl:template match="esql:row-results//esql:get-columns"> <xsl:variable name="tagcase"><xsl:value-of select="@tag-case"/></xsl:variable> + <xsl:variable name="tagname"><xsl:value-of select="@tag-name"/></xsl:variable> <xsl:choose> <xsl:when test="$environment = 'cocoon1'"> <xsp:logic> for (int _esql_i=1; _esql_i <= _esql_query.resultset_metadata.getColumnCount(); _esql_i++) { + String tag-name = + <xsl:choose> + <xsl:when test="$tagname"> + "<xsl:value-of select='@tag-name'/>" + </xsl:when> + <xsl:otherwise> + _esql_query.resultset_metadata.getColumnName(_esql_i) + </xsl:otherwise> + </xsl:choose>; Node _esql_node = document.createElement( <xsl:choose> <xsl:when test="$tagcase='lower'"> - _esql_query.resultset_metadata.getColumnName(_esql_i).toLowerCase() + tag-name.toLowerCase() </xsl:when> <xsl:when test="$tagcase='upper'"> - _esql_query.resultset_metadata.getColumnName(_esql_i).toUpperCase() + tag-name.toUpperCase() </xsl:when> <xsl:otherwise> - _esql_query.resultset_metadata.getColumnName(_esql_i) + tag-name </xsl:otherwise> </xsl:choose> ); @@ -738,7 +748,14 @@ <xsl:when test="$environment = 'cocoon2'"> <xsp:logic> for (int _esql_i = 1; _esql_i <= _esql_query.resultset_metadata.getColumnCount(); _esql_i++) { - String _esql_tagname = _esql_query.resultset_metadata.getColumnName(_esql_i); + <xsl:choose> + <xsl:when test="@tag-name"> + String _esql_tagname = "<xsl:value-of select='@tag-name'/>"; + </xsl:when> + <xsl:otherwise> + String _esql_tagname = +_esql_query.resultset_metadata.getColumnName(_esql_i); + </xsl:otherwise> + </xsl:choose> <xsp:element> <xsp:param name="name"> <xsl:choose>
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]