[Zope] sqlgroup problems

2001-01-04 Thread Dario Lopez-Kästen

Hello!

I need help with the following SQL-method, which I don't know if it is a
bug, or if it is my mistake.

I am building a search interface to a database (Zope 2.2.4 w all HF's,
Oracle 8.1.7, Solaris), and I want to use the following sqlmethod, to let
the user enter any combination of search parameters, including none:

select * from ladok.kurs
dtml-sqlgroup where
  dtml-sqltest kurs_kod column="kod"
   op="like" type="string" optional
dtml-and
  dtml-sqltest kurs_namn column="benamns"
   op="like" type="string" optional
/dtml-sqlgroup

From the Zope Book, Chapter 10, I got the impression that the "optional"
part of the sqltest tag would render the parts that where not null; i.e. if
I only specify the kurs_namn variable (first sqltest), the method would
render the following SQL:

  select * from ladok.kurs
  where
  (kod like 'XX')

or, if no search parameters where specified, it would render the following
SQL:

  select * from ladok.kurs

However this is not the case, what I get if I enter XX for kurs_kod is the
following SQL:

select * from ladok.kurs
where
(kod like 'XX'
 and benamns like ''
)

Is this expected behaviour or have I misunderstood the docs? I can get
around this problem by doing something like this (notice the op tag and the
extra ",'%')" string at the end of each sqltest line) :

  dtml-sqltest kurs_kod column="kod"
   op="like nvl(" type="string" optional, '%')

which renders the following SQL (the "%" is the Oracle wildcard operator):

select * from ladok.kurs
where
(kod like nvl( 'XX', '%')
 and benamns like nvl( '', '%')
)

however, i'd much rather that it didn't render the null variables at all.

If this is known behaviour then the examples in Chapter 10

Any help appreciated. I searched the archives but didn't find any answers,

TIA,

/dario

- 
Dario Lopez-Kästen Systems Developer  Chalmers Univ. of Technology
[EMAIL PROTECTED]  ICQ will yield no hitsIT Systems  Services


___
Zope maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope-dev )




[Zope] sqlgroup

2000-11-30 Thread Tom Deprez

Hi,

Is there a reason why the attribute 'having' doesn't exists?

I want to use 

dtml-sqlgroup having
  dtml-sqltest ... optional
/dtml-sqlgroup

this way when the sql-test tag contains nothing, also the having clause is
not attached to the query.

Why does 'where' exists and 'having' not? Is there another way to mimic
'having'?

Thanks, Tom.

___
Zope maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope-dev )