[Zope-DB] passing a variable to zsql method

Dario Lopez-Kästen dario at ita.chalmers.se
Sat Sep 4 05:31:25 EDT 2004

Dario Lopez-Kästen wrote:
> select * from host
> order by
> <dtml-if User>
> user
> <dtml-elif Model>
> model
> <dtml-elif Serial>
> serial
> </dtml-if>
> I am sure that there are more elegant ways of doing this, but this works 
> quite well.
> Hope this helps
> /dario

forgot to add - you make the zsql method accept User, Model and Serial 
as arguments (in the argument box).

The actual values of those vars can be anything.

Note though that the arguments have to be space-separated - if you use 
commas, they will become part of the variable name, and it will generate 
silent and hard to track errors (I had one of those yesterday whenI 
forgot myself :-P).

another way might be to provide a sort_order variable as an argument. In 
that case the sql would look something like this:

select * from host
order by
<dtml-if expr="sort_order == 'user'">
<dtml-elif expr="sort_order == 'model'">
<dtml-elif expr="sort_order == 'serial'">

and you call it like, as an example:

context.my_sql_method(sort_order='user', ...)


-- -------------------------------------------------------------------
Dario Lopez-Kästen, IT Systems & Services Chalmers University of Tech.

More information about the Zope-DB mailing list