Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES

## Package org.apache.xalan.lib.sql

Provides extension functions for connecting to a JDBC data source, executing a query, and working incrementally through "streamable" result set.

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.

## Package org.apache.xalan.lib.sql Description

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.

1. new() -- Use one of the XConnection constructors to connect to a data source, and return an XConnection object.

2. 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.

3. close() -- Use the XConnection object close() method to terminate the connection.

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.

## Example

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>&#10;</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>

Version:
  Alpha, 2.0.0, September 23, 2000
Author:
  Scott Boag

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES

Copyright © 2000 Apache XML Project. All Rights Reserved.