[Zope-DB] Form evaluation in ZSQL-Method
Andreas Tille
tillea at rki.de
Thu Sep 18 07:54:25 EDT 2003
Hi,
I want to implement the folowing logic:
If no item form a selection List is selected, I want to get all items from
the database as return. In a selection list I defined
<option value="0">All items</option>
<option value="1">Item 1</option>
<option value="2">Item 2</option>
<option value="3">Item 3</option>
The Z SQL method looks like
<params>iditem</params>
SELECT item FROM itmes
<dtml-sqlgroup where>
<dtml-sqltest iditem column=iditem op=eq type=eq optional>
</dtml-sqlgroup>
This perfectly selects the items if I select one of them but if I want to
get all items nothing will be found. I wanted to do the following
trick now:
I defined in PostgreSQL
CREATE FUNCTION test_item (integer, integer) RETURNS boolean AS '
BEGIN
IF $1 = 0 OR $2 = 0 OR $1 = $2 THEN
RETURN ''t'' ;
END IF;
RETURN ''f'' ;
END; ' LANGUAGE 'plpgsql';
which returns true in the case that one integer is zero or if both are
equal. To use this I tried the following ZSQL variation:
<params>iditem</params>
SELECT item FROM itmes
<dtml-sqlgroup where>
test_land(<dtml-sqlvar iditem type="nb">, iditem)
</dtml-sqlgroup>
This works for the first 20 results of the result set but if I want to
follow the link "Next 20 results" I get the answer
Missing input variable, iditem
Any hint what's wrong here or rather, how to do this right?
Kind regards
Andreas.
More information about the Zope-DB
mailing list