cocoon-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rudi Strasser <rudi.stras...@gmx.de>
Subject Re: binding params in dynamic queries in ESQL
Date Sun, 07 Mar 2004 14:55:32 GMT
On Saturday 06 March 2004 06:36, R Hunt wrote:
> Thanks for everyone's advice on this topic.  It seems that the general
> consensus is that one should use <esql:parameter> to bind parameters, but
> it can't be done when building a dynamic query.

I am not 100% sure if you basically want to assemble the query dynamically. If that is the
case I did that successfully in the following xsp:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsp:page 
   xmlns:xsp="http://apache.org/xsp" 
   xmlns:xsp-request="http://apache.org/xsp/request/2.0" 
   xmlns:esql="http://apache.org/cocoon/SQL/v2"
   xmlns:util="http://apache.org/xsp/util/2.0"
   language="java">

   <die-data xmlns:cinclude="http://apache.org/cocoon/include/1.0">
      <xsp:logic>
          String parname = <xsp-request:get-parameter name="parname" default="myparameter"/>;
          String table = <xsp-request:get-parameter name="table" default="mytable"/>;

          String label = <xsp-request:get-parameter name="label" default="lot"/>;
          String tag = <xsp-request:get-parameter name="tag" default="testplan"/>;

          String lot = <xsp-request:get-parameter name="lot" default="mylot"/>;
          String wafer = <xsp-request:get-parameter name="wafer" default="(.*)"/>;
          
          String product = <xsp-request:get-parameter name="product" default="defaultproduct"/>;
          String testplan = <xsp-request:get-parameter name="testplan" default="default-testplan"/>;
          String suffix = <xsp-request:get-parameter name="suffix" default=""/>;
          
      </xsp:logic>
      <parameter-info>
         <util:include-source>
           <util:param name="uri">cocoon:/paraminfo?parname=<xsp:expr>parname</xsp:expr></util:param>
         </util:include-source>
      </parameter-info>
      <esql:connection>
         <esql:pool>jdp</esql:pool>

         <esql:execute-query>
            <esql:query>select <xsp:expr>label</xsp:expr> as label,
                               <xsp:expr>tag</xsp:expr> as tag,
                               abs(<xsp:expr>parname</xsp:expr>) as parameter
 
                               from <xsp:expr>table</xsp:expr> 
	                       where lot~'<xsp:expr>lot</xsp:expr>' and 
                                     wafer~'<xsp:expr>wafer</xsp:expr>' and 
                                     testplan~'<xsp:expr>testplan</xsp:expr>'
and
                                     product~'<xsp:expr>product</xsp:expr>' <xsp:expr>suffix</xsp:expr>

                               order by label,tag
                                     
            </esql:query>
            <esql:results>
               <esql:row-results>
                  <xsp:logic>
                    if (  <esql:get-float column="parameter"/> != 0 )
                     {
                       <xsp:content>
		     	   <record>
        	     	    	 <label><esql:get-string column="label"/></label>
		     	    	 <tag><esql:get-string column="tag"/></tag>
      		     	    	 <parameter>
                     	    	    <xsp:attribute name="name"><xsp:expr>parname</xsp:expr></xsp:attribute>
                     	          <esql:get-float column="parameter"/>
                     	    	 </parameter>
		     	   </record>
                       </xsp:content>
                     }
                  </xsp:logic>
               </esql:row-results>
            </esql:results>
         </esql:execute-query>
      </esql:connection>
   </die-data>
</xsp:page>


I hope I am not totally out of context.
/Rudi


> Thanks.
>
> At 06:41 PM 3/5/2004 +0100, you wrote:
> >You are mixing things up. :)
> >Better have a look into the examples.
>
> Can you recommend some examples that show a dynamically built query that
> uses <esql:parameter>?
>
> >What you want to do here is build the
> >clause ...which has nothing to do with
> >esql! Drop the paramopen/close stuff
> >and you are fine.
>
> Doesn't the <esql:parameter> tags belong in the where clause?
>
> >Always(!!) use esql:parameter to insert
> >dynamic values - or at least never pass
> >request values directly.
>
> Yes,  I would like to!  But how can I do it with a dynamically built query?
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
> For additional commands, e-mail: users-help@cocoon.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org


Mime
View raw message