|
||||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
See:
Description
Class Summary | |
Column | Represents a col node from a row node. |
ColumnAttribute | Represents a column attribute on a column-header element. |
ColumnData | Represents the col element text node, i.e., the column value. |
ColumnHeader | This class represents a column-header Node, which contains the metadata for a column. |
Row | This class represents a row from a query result set. |
RowSet | This class represents the row-set StreamableNode, a "streamable" holder for the JDBC query result set. |
StreamableNode | This is the superclass for all nodes in the org.apache.xalan.lib.sql package. |
XConnection | An XSLT extension that allows a stylesheet to access JDBC data. |
XStatement | Represents a JDBC query statement. |
Provides extension functions for connecting to a JDBC data source, executing a query, and working incrementally through "streamable" result set.
XConnection provides three extension functions that you can use in your stylesheet.
new() -- Use one of the XConnection constructors to connect to a data source, and return an XConnection object.
query() -- Use the XConnection object query() method to return a "streamable" result set in the form of a row-set node. Work your way through the row-set one row at a time. The same row element is used over and over again, so you can begin "transforming" the row-set before the entire result set has been returned.
The query() extension function returns a Document node that contains (as needed) an array of column-header elements, a single row element that is used repeatedly, and an array of col elements. Each column-header element (one per column in the row-set) contains an attribute (ColumnAttribute) for each of the column descriptors in the ResultSetMetaData object. Each col element contains a text node with a textual representation of the value for that column in the current row.
This example displays the result set from a table in a sample InstantDB database.
<?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:sql="org.apache.xalan.lib.sql.XConnection" extension-element-prefixes="sql"> <xsl:output method="html" indent="yes"/> <xsl:param name="query" select="'SELECT * FROM import1'"/> <xsl:template match="/"> <!-- 1. Make the connection --> <xsl:variable name="products" select="sql:new('org.enhydra.instantdb.jdbc.idbDriver', 'jdbc:idb:D:\instantdb\Examples\sample.prp')"/> <HTML> <HEAD> </HEAD> <BODY> <TABLE border="1"> <!--2. Execute the query --> <xsl:variable name="table" select='sql:query($products, $query)'/> <TR> <!-- Get column-label attribute from each column-header--> <xsl:for-each select="$table/row-set/column-header"> <TH><xsl:value-of select="@column-label"/></TH> </xsl:for-each> </TR> <xsl:apply-templates select="$table/row-set/row"/> <xsl:text> </xsl:text> </TABLE> </BODY> </HTML> <!-- 3. Close the connection --> <xsl:value-of select="sql:close($products)"/> </xsl:template> <xsl:template match="row"> <TR> <xsl:apply-templates select="col"/> </TR> </xsl:template> <xsl:template match="col"> <TD> <!-- Here is the column data --> <xsl:value-of select="text()"/> </TD> </xsl:template> </xsl:stylesheet>
|
||||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |