[Zope-it] Problemi con SQLgroup

Zanotti Michele Zanotti@az.aziendasanitaria.trentino.it
Mon, 12 Mar 2001 18:37:53 +0100


Ciao a tutta la ml,
Una segnalazione ed una domanda.
La segnalazione (se =E8 gia stata fatta in Zope-it scusate tanto, ma mi =
=E8
sembrato che gli autori abbiano inviato l'annuncio solo sulla ml =
inglese di
Zope) =E8 per il prodotto di WorkFlow OpenFlow, informazioni su
http://sourceforge.net/projects/openflow . Anche se io sono solo un =
utente
inesperto mi sembra valga la pena darci uno sguardo- se si =E8 =
interessati al
workflow.

Passo alla domanda. Nel capitolo 10 dello Zope Book "Creating complex
queries with the Sqlgroup tag" si legge (se non erro) che dal template
select * from employees=20
        <dtml-sqlgroup where>
          <dtml-sqltest salary op=3Dgt type=3Dfloat optional>
        <dtml-and>
          <dtml-sqltest first op=3Deq type=3Dstring multiple optional>
        <dtml-and>
          <dtml-sqltest last  op=3Deq type=3Dstring multiple optional>
        </dtml-sqlgroup> =20
Posso ottenere le query
        select * from employees
        where(
          salary > 100000.00
        )
       =20
        select * from employees=20
        where(
          salary > 100000.00
          and
          first in ('Jane', 'Cheetah', 'Guido')   =20
        )
       =20
        select * from employees=20
        where(
          first =3D 'Old'
          and
          last =3D 'McDonald'    =20
        ).

Io ho provato a creare un database Gadfly simile a quello dell'esempio, =
e ad
eseguire l'esempio creando un SQLmethod in cui ho messo:
- il template in questione nel campo query-template=20
- i parametri salary  first e last (il primo numerico, gli altri =
carattere)
nel campo parametri.=20
Eseguendo il test del metodo ed assegnando un solo valore al campo =
salary,
il risultato =E8 stato (in accordo a quanto mi aspetterei leggendo il =
ZQR):
"There was no data matching this sqlMth_provaGadfly query.=20
SQL used:
select * from employees
where
(salary > 10000
 and first =3D ''
 and last =3D ''
)".

Ma dal libro mi aspettavo di ottenere la query:
select * from employees
where
(salary > 10000)

Sono io che non ho letto/eseguito l'esempio attentamente?.
Grazie in anticipo e ciao=20
Michele