[Zope-DB] Problem with <dtml-sqltest ... multiple> feature
David Daniel Estévez Durey
ahumboldt at humboldt.e.telefonica.net
Thu Feb 14 06:32:34 EST 2008
Hello Ken,
I have been a long time looking for the way to type in an array a
values in the Test tab forms of the ZMI,
but I think that it isn't possible.
In the documentation I read that it is recommended to specify the type
of the arguments in the ZSQL method
as in the following example:
---
Parameter list: organization_id:list:integer url_name:list:string
name:list:string
> select
> organization_id, name, url_name, short_name
> from
> organization
> <dtml-sqlgroup where>
> <dtml-and> <dtml-sqltest organization_id op="eq" type="int"
> multiple
> optional>
> <dtml-and> <dtml-sqltest url_name op="eq" type="nb" multiple
> optional>
> <dtml-and> <dtml-sqltest name op="eq" type="nb" multiple optional>
> </dtml-sqlgroup>
---
However, I have tested that specifying the type of the arguments makes
no difference!
On the other hand, the SQL Method works fine when is called from a
Script Python or a ZTP
as in the following example:
---
context.zsql_method({'organization_id':[1,2,3], url_name:['a','b'],
name:['z']}).dictionaries()
---
I don't know if I have helped you. Good luck!
El 14/02/2008, a las 2:00, Ken Winter escribió:
> This ZSQL method:
>
> select
> organization_id, name, url_name, short_name
> from
> organization
> <dtml-sqlgroup where>
> <dtml-and> <dtml-sqltest organization_id op="eq" type="int"
> multiple
> optional>
> <dtml-and> <dtml-sqltest url_name op="eq" type="nb" multiple
> optional>
> <dtml-and> <dtml-sqltest name op="eq" type="nb" multiple optional>
> </dtml-sqlgroup>
>
> doesn't work properly when I give it "a sequence of values to test the
> condition against", which is what the "multiple" tag is supposed to
> allow
> according to http://www.plope.com/Books/2_7Edition/AppendixA.stx#1-15 .
> When I enter (for example) the string "HI, RF" (without the surrounding
> quotes) into the url_name field on the ZSQL method's ZMI Test tab, it
> returns no records and says that the SQL it generated was:
>
> select
> organization_id, name, url_name, short_name
> from
> organization
> where
> url_name = 'HI, RF'
>
> If I enter a series of integers such as "11530, 11531" (again, minus
> the "s)
> into the organization_id field, it returns the error message:
>
> Invalid integer value for organization_id
>
> Entering a single value into any of these fields works fine. I have
> tried
> various ways of quoting, delimiting, and otherwise punctuating my
> multiple-value arguments, to no avail.
>
> Is this problem just because the "multiple" feature doesn't work when
> tested
> in the ZMI? If so, can you tell me the correct way to type and format
> the
> multiple-valued arguments when calling the ZSQL method from Python or
> from a
> Page Template?
>
> ~ Ken
More information about the Zope-DB
mailing list