Hey, you are great. Thanks (more than !!!!!) a lot. :-D I will try it out .... J.
At 16.57 26/09/2002 -0400, you wrote: >I'll take a stab at it... > >You don't need java for looping over the rows, that is already done by the >esql logicsheet when you use <esql:row-results>. You can mix <xsp:logic> >and ESQL tags as needed however. Here's some code (below) that might be >close to what you want to do. Note I wasn't sure everywhere what you were >trying to do with your queries, and some of them didn't make sense to me, >so I made guesses as to what your database schema looks like and rewrote >the queries accordingly. Hopefully it will help make some sense of this >for you. Also note I've used java to get a foreign key (I made up the >column name, but I assume it must exist) from the section table for use in >the chapter table, but ESQL also provides some features that would allow >you to avoid even this little bit of java. I'm not real familiar with it, >but presumably it is documented in the ESQL documentation. Anyway, this >shows you that you can easily mix <xsp:logic> and ESQL tags. > ><?xml version="1.0" encoding="UTF-8"?> ><xsp:page > xmlns:xsp="http://apache.org/xsp" > xmlns:esql="http://apache.org/cocoon/SQL/v2" > > > <Document > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:noNamespaceSchemaLocation="schema.xsd" > > > <!-- Get Document --> > <esql:connection> > <esql:pool>xmldb</esql:pool> > <esql:execute-query> > <esql:query>select * from document where DocID = 1</esql:query> > <esql:results> > <esql:row-results> > <DocObj><esql:get-string column="DocObject"/></DocObj> > <DocTitle><esql:get-string column="DocTitle"/></DocTitle> > <DocVer><esql:get-string column="DocVersion"/></DocVer> > <DocAuth><esql:get-string column="DocAuthor"/></DocAuth> > <DocDate><esql:get-date column="DocData"/></DocDate> > </esql:row-results> > </esql:results> > </esql:execute-query> > > <!-- Get Sections --> > <esql:execute-query> > <esql:query>select * from section where DocID = 1</esql:query> > <esql:results> > <!-- Loop over sections - no xsp:logic needed, this is already a >java loop --> > <esql:row-results> > <Section> > <SecTitle><esql:get-string column="SecTitle"/></SecTitle> > <SecContent><esql:get-string column >="SecContent"/></SecContent> > <xsp:logic> > <!-- Save your foreign key for the chapter table --> > String section = <esql:get-string column="SecID"/>; > </xsp:logic> > > <!-- Get Chapters for this Section --> > <esql:execute-query> > <esql:query> > select * from chapter > where DocID = 1 AND Section= > <esql:parameter type="string"> > <xsp:expr>section</xsp:expr> > </esql:parameter> > </esql:query> > <esql:results> > <!-- Loop over Chapters --> > <esql:row-results> > <Chapter> > <ChapTitle><esql:get-string column >="ChapTitle"/></ChapTitle> > <ChapContent><esql:get-string column >="ChapContent"/></ChapContent> > </Chapter> > </esql:row-results> > </esql:results> > </esql:execute-query> > > </Section> > </esql:row-results> > </esql:results> > </esql:execute-query> > </esql:connection> > </Document> ></xsp:page> > > > > >Hi, it's me again ... could some one give me a hint how to use <xsp:logic> >in the right way ? > >I have to generate a document structure like this: >document > section A > chapter 1 > chapter 2 > section B > chapter 3 > > My problem is to combine the logic with my esql tags. > ><xsp:page laguage="java" xmlns:xsp="http://apache.org/xsp" >xmlns:esql="http://apache.org/cocoon/SQL/v2"> > <Document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >xsi:noNamespaceSchemaLocation="schema.xsd" >xmlns:esql="http://apache.org/cocoon/SQL/v2" xmlns:xsp=" >http://apache.org/xsp"> > <esql:connection> > <esql:pool>xmldb</esql:pool> > <Document> > <esql:execute-query> > <esql:query>select * from document</esql:query> > <esql:results> > <esql:row-results> > <DocObj><esql:get-string column="DocObject"/></DocObj> > <DocTitle><esql:get-string column="DocTitle"/></DocTitle> > <DocVer><esql:get-string column="DocVersion"/></DocVer> > <DocAuth><esql:get-string column="DocAuthor"/></DocAuth> > <DocDate><esql:get-date column="DocData"/></DocDate> > </esql:row-results> > </esql:results> > </esql:execute-query> > <Section> > <esql:execute-query> > <esql:query>select * from section where DocID 1</esql:query> > // Here I have to make an output first for the section A and all its >chapters and after that I have to realize an output of the section B and >all its chapters ... > how can I realize it ? > <xsp:logic> > for (int x=0; x< =<esql:row-results>; x++){ > <esql:results> > <esql:row-results> > <SecTitle><esql:get-string column="SecTitle"/></SecTitle> > <SecContent><esql:get-string column="SecContent"/></SecContent> > </esql:row-results> > </esql:results> > </esql:execute-query> > > <Chapter> > <esql:execute-query> > <esql:query>select * from chapter where Chapter= nr AND >Section=A</esql:query> > > <xsp:logic> > for (int y=0; >y<=<esql:row-results>; y++){ > <esql:results> > <esql:row-results> > <ChapTitle><esql:get-string column="ChapTitle"/></ChapTitle> > <ChapContent><esql:get-string column="ChapContent"/></ChapContent> > </esql:row-results> > </esql:results> > } > </xsp:logic> > </esql:execute-query> > } > </xsp:logic> > </Chatpter> > </Section> > </sql:connection> > </Document> > >Is it possible to use esql or better to write everything in Java? I am >really new to all this stuff ... sorry if I mix up everything ... >J. > > > > > >--------------------------------------------------------------------- >Please check that your question has not already been answered in the >FAQ before posting. <http://xml.apache.org/cocoon/faq/index.html> > >To unsubscribe, e-mail: <[EMAIL PROTECTED]> >For additional commands, e-mail: <[EMAIL PROTECTED]> --------------------------------------------------------------------- Please check that your question has not already been answered in the FAQ before posting. <http://xml.apache.org/cocoon/faq/index.html> To unsubscribe, e-mail: <[EMAIL PROTECTED]> For additional commands, e-mail: <[EMAIL PROTECTED]>