> > I'll send you an example in a few minutes (I'm not sure the 
> rest of the
> > mailing list would be interested)
> 
> I would

OK, then:
this an old file I made to test something in the xml fragment I read from
the DB, and I've changed a few things between the working version and this
one.
It's a kind of draft, so don't take it too seriously
Anyway, the queries were OK when I first tested this file, and that's what
you're looking for.

Olivier


<?xml version="1.0" encoding="iso-8859-1"?>
<?cocoon-process type="xinclude"?>
<?cocoon-process type="xsp"?>
<?xml-logicsheet href="xsp/fragmentation-xsp.xsl"/?>
<?cocoon-process type="xslt"?>
<?xml-stylesheet href="xsl/page.xsl" type="text/xsl"?>
<xsp:page
xmlns:xsp="http://www.apache.org/1999/XSP/Core";
xmlns:auth="http://ulim.cocoonhost.com/auth";
xmlns:request="http://www.apache.org/1999/XSP/Request";
xmlns:session="http://www.apache.org/1999/XSP/Session";
xmlns:foo="http://localhost/foo";
xmlns:common="http://localhost/common";
xmlns:fragmentation="http://localhost/fragmentation";
xmlns:esql="http://apache.org/cocoon/SQL/v2";
xmlns:util="http://www.apache.org/1999/XSP/Util";
xmlns:xinclude="http://www.w3.org/1999/XML/xinclude";
>
<xsp:structure>
        <xsp:include>localhost.basket.Basket</xsp:include>
</xsp:structure>

        <xsp:logic>     
        public Basket basket;
        </xsp:logic>

        <foo:page>
                <include xinclude:parse="xml"
xinclude:href="authentication-header.xml" />

                <xsp:attribute name="xml:lang"><session:get-attribute
name='lang' /></xsp:attribute>
                <xsp:attribute
name="foo:description"><xsp:expr>(Boolean)<session:get-attribute
name='description' /></xsp:expr></xsp:attribute>
                <xsp:attribute
name="foo:promotion"><xsp:expr>(Boolean)<session:get-attribute
name='promotion' /></xsp:expr></xsp:attribute>
                
                <foo:frag-page>
                
                
                        <xsp:logic>
                        if (<request:get-parameter name="fragID"/> != null)
{       
                                if (<request:get-parameter name="quantity"/>
!= null <![CDATA[&&]]>
                                        <request:get-parameter
name="product"/> != null <![CDATA[&&]]>
                                        <request:get-parameter
name="price"/> != null <![CDATA[&&]]>
                                        <request:get-parameter
name="promo"/> != null ) {
                                        try {
                                                if
(Integer.parseInt((String)<request:get-parameter name="quantity"/>) > 0) {
                                                // nouvelle commande de ce
produit
                                                        if
(<session:get-attribute name="basket"/> == null) {
                                                                basket = new
Basket(5);
                                                        } else {
                                                                basket =
(Basket)<session:get-attribute name="basket"/>;
                                                        }
                                                        
                                                        float promo;
                                                        try {
                                                                promo =
Float.parseFloat((String)<request:get-parameter name="promo"/>);
                                                        } catch
(NumberFormatException exc) {
                                                                promo =
Float.parseFloat((String)<request:get-parameter name="price"/>);
                                                        }
                                                        basket.addProduct(
        
Integer.parseInt((String)<request:get-parameter name="fragID"/>),
        
(String)<request:get-parameter name="product"/>,
        
Integer.parseInt((String)<request:get-parameter name="quantity"/>),
        
Float.parseFloat((String)<request:get-parameter name="price"/>),
                                                                promo
                                                        );
        
<session:set-attribute
name='basket'><xsp:expr>basket</xsp:expr></session:set-attribute>;
<!--
                                                        <esql:connection>
        
<esql:pool>foo</esql:pool>
        
<esql:execute-query>
        
<esql:query>
        
replace into basket
        
(user,idtitle, reference, quantity)
        
values ('<session:get-attribute name="user" />',
        
<xsp:expr>Integer.parseInt((String)<request:get-parameter
name="fragID"/>)</xsp:expr>,
        
'<request:get-parameter name="product"/>',
        
<request:get-parameter name="quantity"/>)
        
</esql:query>
        
</esql:execute-query>
                                                        </esql:connection>
-->
                                                } else {
                                                // supprime la commande de
ce produit
<!--                                            
                                                        <esql:connection>
        
<esql:pool>foo</esql:pool>
        
<esql:execute-query>
        
<esql:query>
        
delete from basket
        
where  user = '<session:get-attribute name="user" />'
        
and idtitle = <xsp:expr>Integer.parseInt((String)<request:get-parameter
name="fragID"/>)</xsp:expr>
        
and reference = '<request:get-parameter name="product"/>'
        
</esql:query>
        
        
<esql:results>
        
<esql:row-results>
        
<foo:promo>
        
<xsp:attribute name="ref"><esql:get-string column="ref"/></xsp:attribute>
        
<esql:get-float column="promo"/>
        
</foo:promo>
        
</esql:row-results>
        
</esql:results>
        
</esql:execute-query>
                                                        </esql:connection>
-->
                                                }
                                        } catch (NumberFormatException exc)
{
                                                // ne fait rien
                                        }
                                }
                                
                                <!-- charge les promotions des articles -->
                                <!-- on charge toutes les promotions car
l'indexation de la table newprice ne permet pas 
                                de récuppérer uniquement les références du
fragment courant -->
                                <esql:connection>
                                        <esql:pool>foo</esql:pool>
                                        <esql:execute-query>
                                          <esql:query>
                                                select p.promotion as promo,
p.reference as ref
                                                from newprice p
                                          </esql:query>

                                          <esql:results>
                                             <esql:row-results>
                                                <foo:promo>
                                                        <xsp:attribute
name="ref"><esql:get-string column="ref"/></xsp:attribute>
                                                        <esql:get-float
column="promo"/>
                                                </foo:promo>
                                             </esql:row-results>
                                          </esql:results>
                                        </esql:execute-query>
                                </esql:connection>
                                
                                <!-- charge les commandes des articles -->
                                <esql:connection>
                                        <esql:pool>foo</esql:pool>
                                        <esql:execute-query>
                                          <esql:query>
                                                select b.reference as ref,
b.quantity as nb
                                                from basket b
                                                where
b.user='<session:get-attribute name="user" />'
                                                        and b.idtitle =
<xsp:expr>Integer.parseInt((String)<request:get-parameter
name="fragID"/>)</xsp:expr>
                                          </esql:query>
                                        
                                          <esql:results>
                                             <esql:row-results>
                                                <foo:basket>
        
<foo:item-ref><esql:get-string column="ref"/></foo:item-ref>
        
<foo:item-nb><esql:get-int column="nb"/></foo:item-nb>
                                                </foo:basket>
                                             </esql:row-results>
                                          </esql:results>
                                         <esql:no-results/>
                                        </esql:execute-query>
                                </esql:connection>

                                <common:form METHOD='get' NAME='orderform'>
                                        <xsp:attribute
name="ACTION"><request:get-request-uri /></xsp:attribute>
                                        
                                        <common:hidden-field name="product"
value="none" />
                                        <common:hidden-field name="quantity"
value="0" />
                                        <common:hidden-field name="price" />
                                        <common:hidden-field name="promo"
value="0" />
                                        <common:hidden-field name="fragID">
                                                <xsp:attribute
name="value"><request:get-parameter name="fragID"/></xsp:attribute>
                                        </common:hidden-field>

                                                <fragmentation:get-fragment>
        
<fragmentation:name>identifiant</fragmentation:name>
        
<fragmentation:id><xsp:expr>Integer.parseInt((String)<request:get-parameter
name="fragID"/>)</xsp:expr></fragmentation:id>
        
</fragmentation:get-fragment>
                                </common:form>
                        } else {
                                <foo:error>fragID == null</foo:error>
                        }
                        </xsp:logic>
                </foo:frag-page>

                <foo:bottom-bar />

                <foo:bottom-page-mention>
                        <foo:translate text="genere par" /> Cocoon 1.8.2
(<util:time format="dd/MM/yyyy - hh:mm:ss" />)
                </foo:bottom-page-mention>
        </foo:page>
</xsp:page>

---------------------------------------------------------------------
Please check that your question has not already been answered in the
FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>

To unsubscribe, e-mail: <[EMAIL PROTECTED]>
For additional commands, e-mail: <[EMAIL PROTECTED]>

Reply via email to