| <?xml version="1.0" encoding="ISO-8859-1"?> |
| |
| <!-- CVS: $Id: esql.xsp,v 1.3 2003/04/17 20:47:30 haul Exp $ --> |
| |
| <xsp:page language="java" |
| xmlns:xsp="http://apache.org/xsp" |
| xmlns:esql="http://apache.org/cocoon/SQL/v2"> |
| |
| <page> |
| <title>A Database Driven XSP Page</title> |
| <resources> |
| <resource type="file" href="../transform/sql-page.xml.sql">Schema</resource> |
| <resource type="doc" href="userdocs/xsp/esql">ESQL</resource> |
| </resources> |
| |
| <content> |
| |
| <esql:connection> |
| <esql:pool>personnel</esql:pool> |
| |
| |
| <para> |
| Below you see all guys from the departments |
| </para> |
| |
| <esql:execute-query> |
| <esql:query>select * from employee</esql:query> |
| <esql:results> |
| <esql:row-results> |
| <para><esql:get-string column="name"/></para> |
| <!-- uncomment if you want columns to become tags --> |
| <!-- <esql:get-columns/> --> |
| </esql:row-results> |
| </esql:results> |
| </esql:execute-query> |
| |
| <hr/> |
| |
| <para> |
| Below you see just some of the guys |
| </para> |
| |
| <esql:execute-query> |
| <esql:query>select * from employee</esql:query> |
| <esql:use-limit-clause>jdbc</esql:use-limit-clause> |
| <esql:skip-rows>1</esql:skip-rows> |
| <esql:max-rows>2</esql:max-rows> |
| <esql:results> |
| <esql:row-results> |
| <para><esql:get-string column="name"/></para> |
| </esql:row-results> |
| <esql:previous-results> |
| We skipped some. |
| </esql:previous-results> |
| <esql:more-results> |
| There are some more. |
| </esql:more-results> |
| <para> |
| There is a total of <esql:row-count/> employees. |
| </para> |
| </esql:results> |
| </esql:execute-query> |
| |
| <hr/> |
| |
| <para> |
| Below departments and employees are printed. |
| Without the grouping feature, the result would look like this: |
| </para> |
| |
| <esql:execute-query> |
| <esql:query> |
| SELECT department.name, employee.id, employee.name as empName FROM department, employee |
| WHERE department.id = employee.department_id ORDER BY department.name |
| </esql:query> |
| <esql:results> |
| <esql:row-results> |
| <Department> |
| <xsp:attribute name='name'><esql:get-string column='name'/></xsp:attribute> |
| <h2><esql:get-string column='name'/></h2> |
| <para><employee><esql:get-string column='empName'/></employee></para> |
| </Department> |
| </esql:row-results> |
| </esql:results> |
| </esql:execute-query> |
| |
| <hr/> |
| |
| <para> |
| This uses the grouping feature in esql. |
| </para> |
| |
| <esql:execute-query> |
| <esql:query> |
| SELECT department.name, employee.id, employee.name as empName FROM department, employee |
| WHERE department.id = employee.department_id ORDER BY department.name |
| </esql:query> |
| <esql:results> |
| <esql:row-results> |
| <esql:group group-on='name'><!-- grouping --> |
| <Department> |
| <xsp:attribute name='name'><esql:get-string column='name'/></xsp:attribute> |
| <h2><esql:get-string column='name'/></h2> |
| <esql:member><!-- grouping --> |
| <para><employee><esql:get-string column='empName'/></employee></para> |
| </esql:member><!--grouping --> |
| </Department> |
| </esql:group><!-- grouping --> |
| </esql:row-results> |
| </esql:results> |
| </esql:execute-query> |
| |
| <hr/> |
| |
| <para> |
| This uses nested queries. |
| </para> |
| |
| <esql:execute-query> |
| <esql:query> |
| SELECT name, id FROM department ORDER BY name |
| </esql:query> |
| <esql:results> |
| <esql:row-results> |
| <Department> |
| <xsp:attribute name='name'><esql:get-string column='name'/></xsp:attribute> |
| <h2><esql:get-string column='name'/></h2> |
| |
| <esql:execute-query> |
| <esql:query> |
| select name from employee |
| where department_id = <esql:parameter type="int"><esql:get-int column="id" ancestor="1"/></esql:parameter> |
| </esql:query> |
| <esql:results> |
| <esql:row-results> |
| <para><employee><esql:get-string column='name'/></employee></para> |
| </esql:row-results> |
| </esql:results> |
| </esql:execute-query> |
| |
| </Department> |
| </esql:row-results> |
| </esql:results> |
| </esql:execute-query> |
| |
| </esql:connection> |
| |
| </content> |
| </page> |
| </xsp:page> |