[Zope] Problem using dtml-in in ZSQL method

Jaroslav Lukesh lukesh at seznam.cz
Thu Dec 11 12:07:56 EST 2008


first, convert mylist to string before calling ZSQL method:

<dtml-call "REQUEST.set('strmylist', _.str(mylist))">

And then call the ZSQL method:

<params>
strmylist:string="[0]"
</params>

SELECT *
FROM MyTable
WHERE
  id in
    (<dtml-var "strmylist[1:-1]" sql_quote>)


----- Original Message ----- 
From: Françoise CONIL
To: zope at zope.org
Sent: Thursday, December 11, 2008 11:21 AM
Subject: [Zope] Problem using dtml-in in ZSQL method


Hello,

My ZSQL method receive a *mylist* parameter that should be an integer list :
[21,35]

The following code does not work :

SELECT *
FROM MyTable
WHERE
  id in
    (<dtml-in mylist>
        <dtml-sqlvar sequence-item type=int> <dtml-if
sequence-last><dtml-else>,</dtml-if>
    </dtml-in>)


*Type de l'erreur*
NameError
*Valeur de l'erreur*
'client' may not be used as an argument name in this context

This other code does not work better :

SELECT *
FROM MyTable
WHERE
  id in
    (<dtml-in mylist prefix="myid">
        <dtml-sqlvar expr="myid_item" type=int> <dtml-if
sequence-last><dtml-else>,</dtml-if>
    </dtml-in>)

*Same error*

However, if I use a dictionary list of this type [{'id':21},{'id':35}]  with
the following code, it works (but it's heavy)

SELECT *
FROM MyTable
WHERE
  id in
    (<dtml-in mylist mapping>
        <dtml-sqlvar id type=int> <dtml-if
sequence-last><dtml-else>,</dtml-if>
    </dtml-in>)

The python script that calls my ZSQL method has already build the integer
list and I would like to use it as is.

Thanks for your help




_______________________________________________
Zope maillist  -  Zope at zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists -
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope-dev )



More information about the Zope mailing list