R: [Zope-it] Re: Problemi con SQLgroup e una domanda

Zanotti Michele Zanotti@az.aziendasanitaria.trentino.it
Thu, 15 Mar 2001 09:32:35 +0100


Ciao Stefano,
la tua mail mi =E8 di notevole conforto spirituale, =E8 bello non =
sentirsi soli
:).
Se segui la ml americana, forse avrai visto che ho racimolato tutto il =
mio
poco inglese e...
mi hanno risposto (uno, Casey Duncan, mi pare) e mi sembra che =
funzioni!
Basta mettere invece che type=3D"string" type=3D"nb"  comunque ti =
allego la
risposta:
"Use type=3Dnb in place of type=3Dstring on the last 2 sql-tests. "nb" =
stands
for non-blank string. Normal string accept blank values as you have
found already."
Rimane il fatto che secondo me in Zope Book in quel punto c'=E8 un p=F2 =
di
confusione. (Ho scritto=20
anche all'indirizzo riportato in fondo al capitolo ma finora non mi =
hanno
risposto).
Aggiungo una domanda. Vorrei implementare un piccolo sistema di =
prenotazione
di una risorsa (tipo una sala riunioni), una select per vedere se =E8 =
libera,
eventualmente un insert per prenotare.
Se metto i due sqlmethod in una stesso dtml-method, tenendo conto che =
userei
interbase 6.01, posso
confidare che zope li esegua con una transazione serializzata e posso
considerare il problema del bloccaggio risolto, o mi consigliate di =
mettere
select ed insert in una transazione serializzate in una stored =
procedure? O
c'=E8 di meglio (non ho mai affrontato il problema del lock delle =
tabelle).=20

-----Messaggio originale-----
Da: spinwing@inwind.it [mailto:spinwing@inwind.it]
Inviato: mercoled=EC 14 marzo 2001 20.24
A: zope-it@zope.org
Oggetto: [Zope-it] Re: Problemi con SQLgroup


Ciao Michele

no, io ho avuto esattamente gli stessi problemi, ed ho postato un =
messaggio
sulla ML americana, ma non mi si =E8 filato nessuno... Sinceramente ho =
risolto
con <dtml-if>, riservandomi di riprovarci in seguito.

Ciao
Stefano Vedovelli

--__--__--

Message: 1
From: Zanotti Michele <Zanotti@az.aziendasanitaria.trentino.it>
To: zope-it@zope.org
Date: Mon, 12 Mar 2001 18:37:53 +0100
Subject: [Zope-it] Problemi con SQLgroup

Ciao a tutta la ml,
Una segnalazione ed una domanda.
La segnalazione (se =3DE8 gia stata fatta in Zope-it scusate tanto, ma =
mi =3D
=3DE8
sembrato che gli autori abbiano inviato l'annuncio solo sulla ml =3D
inglese di
Zope) =3DE8 per il prodotto di WorkFlow OpenFlow, informazioni su
http://sourceforge.net/projects/openflow . Anche se io sono solo un =3D
utente
inesperto mi sembra valga la pena darci uno sguardo- se si =3DE8 =3D
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=3D20
        <dtml-sqlgroup where>
          <dtml-sqltest salary op=3D3Dgt type=3D3Dfloat optional>
        <dtml-and>
          <dtml-sqltest first op=3D3Deq type=3D3Dstring multiple =
optional>
        <dtml-and>
          <dtml-sqltest last  op=3D3Deq type=3D3Dstring multiple =
optional>
        </dtml-sqlgroup> =3D20
Posso ottenere le query
        select * from employees
        where(
          salary > 100000.00
        )
       =3D20
        select * from employees=3D20
        where(
          salary > 100000.00
          and
          first in ('Jane', 'Cheetah', 'Guido')   =3D20
        )
       =3D20
        select * from employees=3D20
        where(
          first =3D3D 'Old'
          and
          last =3D3D 'McDonald'    =3D20
        ).

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

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=3D20
Michele


_______________________________________________
Zope-it maillist  -  Zope-it@zope.org
http://lists.zope.org/mailman/listinfo/zope-it