cocoon-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From gou...@osmosis.gr
Subject Re: xsp troubles with loops and an esql [solved]
Date Mon, 24 Nov 2003 11:49:32 GMT
thanx chris 

in the case someone else looking for something similar i post the code 
that now work for me 

i have to add AttributesImpl xspAttr tou my function and put all esql: in 
a try-catch


<xsp:page language="java" xmlns:xsp="http://apache.org/xsp" xmlns:esql="http://apache.org/cocoon/SQL/v2">
<xsp:logic>	
      void getChilds(String parent_id, AttributesImpl xspAttr)
      {
	try
	{
	<esql:connection>
	<esql:pool>hotpoints</esql:pool>	
	<esql:execute-query>
	<esql:query>select * from tblElements WHERE element_Parent= 
<xsp:expr>parent_id</xsp:expr></esql:query>		
	<esql:results>
		<esql:row-results>
		<element>				
		<xsp:logic>
		parent_id = <esql:get-string column="id_Elements"/>;						
		</xsp:logic>
		<esql:get-columns/>
		<xsp:expr>parent_id</xsp:expr>		
			<xsp:logic>
				getChilds(parent_id, xspAttr);					
			</xsp:logic>		
		</element>
		</esql:row-results>			
	</esql:results>
	<esql:no-results>
	<the_end>done</the_end>
	</esql:no-results>
	</esql:execute-query>
	</esql:connection>					
	}
	catch (Exception e)
	{
	}
     }		
</xsp:logic>		
	
<page>	
	<elements>
	<xsp:logic>
		getChilds("4",xspAttr);		
	</xsp:logic>
	</elements>
</page>
</xsp:page>





On Mon, 24 Nov 2003, Christian Haul wrote:

> gounis@osmosis.gr wrote:
> 
> >hi people
> >
> >last days i'm in trouble trying to run a "recursive" - like SQL query
> >
> >in my table are rows with an id column and a column that specify the 
> >parent_id (row). so when i get a row (with id=10 for example) the i have 
> >to ask all the rows with the value 10 in column patent_id (but for each 
> >row and before get the next row-results i have to run a SQL query that
> >search for all rows that are have parent_id = this row id) and so on....
> >
> >
> >i have a succesfull output using an .xsp with hand coded nested esql 
> >queries (3 or 4 levels) 
> >
> >the problem is tha i dont know how many levels i have to go.
> >
> >trying to put this esql query into a function who will call it-self has 
> >began my odysey.
> >
> >
> >i need something like 
> >
> >	<xsp:logic>	
> >	
> >		public void getChilds(String parent_id){
> >
> >			<esql:execute-query>
> >				<esql:query>select * from tblElements WHERE element_Parent= <xsp:expr>parent_id</xsp:expr></esql:query>
> >				<esql:results>
> >				<xsp:logic>parent_id = <esql:get-string column="element_id"/>;</xsp:logic>
> >				<esql:get-columns/>
> >				call getChilds(parent_id);
> >				</esql:results>
> >			</esql:execute-query>
> >		}	
> >		
> >		getChilds("1");
> >		
> >	</xsp:logic>		
> >
> >what i try to do is to display all elements from the table in a Tree-like view
> >
> ><element>
> ><id>5</id>
> ><parent_id>1</parent_id>
> > <element>
> > <id>6</id>
> > <parent_id>5</parent_id>
> > </element>
> > <element>
> > <id>9</id>
> > <parent_id>5</parent_id>
> >   <element>
> >   <id>12</id>
> >   <parent_id>9</parent_id>
> >   </element>
> > </element>
> ></element>
> >
> >any idea?
> >  
> >
> 
> The key is to pass some more vars to the method like the object model 
> and the document handler. See
> generated source code for details. E.g. the esql logicsheet defines a 
> method that could serve as a blue
> print.
> 
>     Chris.
> 
> 
> ---------------------------------------------------------------------
> 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