I'd like to build a Z SQL method for *many*
people to use to list courses that we offer.
I don't want to require that all queries
using it understand all of the columns, but
I do want to be able to modify the query in
many ways.

So...after reading
        http://yyy.zope.org/Documentation/Guides/ZSQL-HTML/ZSQL.1.5.3.html
        optional 

        A flag indicating if the test is optional.
        If the test is optional and no value is 
        provided for a variable, or the value
        provided is an invalid empty string, then
        no text is inserted.
I thought I could just use "optional"
with all of my sqltests.
        select * from course_catalog
        
        <dtml-sqlgroup where>
                <dtml-sqltest subject type=nb optional>
                <dtml-and>
                <dtml-sqltest course_nbr type=nb optional>
                <dtml-and>
                <dtml-sqltest version type=nb optional>
                <dtml-and>
                <dtml-sqltest campus_code type=nb optional>
        </dtml-sqlgroup>

This works only if I provide at least an empty
string for all values.  If I don't provide a
value at all for one of the arguments, I get
        Error, Bad Request: ['version'] 

        SQL used:

        Could not render the query template!
        Traceback (innermost last):
          File /data/www/Zope/Zope-2.2.0a1-src/lib/python/ZPublisher/Publish.py, line 
224, in publish_module
          File /data/www/Zope/Zope-2.2.0a1-src/lib/python/ZPublisher/Publish.py, line 
189, in publish
          File /data/www/Zope/Zope-2.2.0a1-src/lib/python/Zope/__init__.py, line 221, 
in zpublisher_exception_hook
            (Object: list_courses)
          File /data/www/Zope/Zope-2.2.0a1-src/lib/python/ZPublisher/Publish.py, line 
175, in publish
          File /data/www/Zope/Zope-2.2.0a1-src/lib/python/ZPublisher/mapply.py, line 
160, in mapply
            (Object: manage_test)
          File /data/www/Zope/Zope-2.2.0a1-src/lib/python/ZPublisher/Publish.py, line 
112, in call_object
            (Object: manage_test)
          File /data/www/Zope/Zope-2.2.0a1-src/lib/python/Shared/DC/ZRDB/DA.py, line 
347, in manage_test
            (Object: list_courses)
          File /data/www/Zope/Zope-2.2.0a1-src/lib/python/Shared/DC/ZRDB/DA.py, line 
324, in manage_test
            (Object: list_courses)
          File /data/www/Zope/Zope-2.2.0a1-src/lib/python/Shared/DC/ZRDB/DA.py, line 
426, in __call__
            (Object: list_courses)
          File /data/www/Zope/Zope-2.2.0a1-src/lib/python/Shared/DC/ZRDB/Aqueduct.py, 
line 150, in _argdata
            (Object: list_courses)
        Bad Request: (see above)

Looking at Aqueduct.py, I don't understand why it's
not catching the "optional" arg.  Using my limited
Python knowledge, I commented out lines 149 and 150
of Aqueduct.py and now it works great.

Once again, I'm glad that I can add these awful
kludges instead of waiting for the vendor, but this
is something that I hope is fixed soon.

--kyler

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

Reply via email to