Re: [Zope-dev] Z SQL: optional isn't?
On Tue, 30 May 2000 17:09:20 +1000 (EST) you wrote: I like the optional attribute. I'd like to see it do more than sit idle in the code. You don't have to do the typechecking in the 'arguments' box if you don't want. eg. in your arguments section: course="" subject="" O.k., it appears that I can still use that with integers. I can live with that. I don't like setting an integer to what appears to be a string, but it does work. select * from enrolments dtml-sqlgroup where dtml-sqltest course type=int optional dtml-sqltest subject type=nb optional /dtml-sqlgroup The definition of the 'optional' tag from the docs might help here: '''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 should have been more specific. I was referring to the "optional" attribute of the *argument* (not the sqltest). I found that it's coded in Aqueduct.py, but I'm not aware of any way to set it from the Z SQL method form. Hmm... looking at this definition, it seems you have found a bug (but setting the default value to "" in the arguments section will provide a workaround). Or maybe 'no value provided' means 'is None'. Anyone from DC want to provide a ruling? :-) Originally, after reading the above ("optional" in sqltest) definition, I'd hoped to be able to simply list the variable in the arguments section and make it optional in the sqltest. After looking at the code, I determined that this was not a reasonable expectation. (What if I used two sqltests and it was only optional in one?) In the course of investigating this, however, I found that an optional attribute for an argument is recognized. It seems like this is what should be used. I can live with it either way, but I think that optional is better than integer_var="". I'd like to see whatever is chosen documented, and I'd like to see "optional" removed from Aqueduct.py if it's not going to be supported. (Maybe it's used by something else?) --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 )
Re: [Zope-dev] Z SQL: optional isn't?
On Mon, 29 May 2000, Kyler B. Laird wrote: This is not the same functionality as is provided by the "optional" attribute. How would I use it with an integer, for example? I don't want a default value; I want the option of not having the value set at all. I like the optional attribute. I'd like to see it do more than sit idle in the code. You don't have to do the typechecking in the 'arguments' box if you don't want. eg. in your arguments section: course="" subject="" And your method: select * from enrolments dtml-sqlgroup where dtml-sqltest course type=int optional dtml-sqltest subject type=nb optional /dtml-sqlgroup The definition of the 'optional' tag from the docs might help here: '''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''' Hmm... looking at this definition, it seems you have found a bug (but setting the default value to "" in the arguments section will provide a workaround). Or maybe 'no value provided' means 'is None'. Anyone from DC want to provide a ruling? :-) -- Stuart Bishop Work: [EMAIL PROTECTED] Senior Systems Alchemist Play: [EMAIL PROTECTED] Computer Science, RMIT University ___ 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 )
Re: [Zope-dev] Z SQL: optional isn't?
Kyler B. Laird writes: 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. 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'] You want to use "default values" in your SQL method argument list. The details are described in "ZSQL/ZSQL.2.5.2.html". You already got this advice. You failed, because you used the wrong kind of quotes (i.e. single rather than double quotes). Quote from "ZSQL2.5.2.html": See Database method input argument format: Argument name and type are separated by a colon. A equal sign separates the default value from the name and type. The default value is a string representation of the desired value. If the default value contains spaces, or is an empty string, then it must be surrounded by double quotes.) Pattern:name:type="default" Dieter ___ 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 )
Re: [Zope-dev] Z SQL: optional isn't?
On Mon, 29 May 2000 21:56:33 +0200 (CEST) you wrote: Error, Bad Request: ['version'] You want to use "default values" in your SQL method argument list. The details are described in "ZSQL/ZSQL.2.5.2.html". What's the URL for this? I'm looking through the pointers from the documentation page and only finding http://www.zope.org/Documentation/Guides/ZSQL-HTML/ZSQL.1.5.2.html I even tried a search and only came up with ZSQL 1.* hits. Quote from "ZSQL2.5.2.html": See Database method input argument format: Argument name and type are separated by a colon. A equal sign separates the default value from the name and type. The default value is a string representation of the desired value. If the default value contains spaces, or is an empty string, then it must be surrounded by double quotes.) This is not the same functionality as is provided by the "optional" attribute. How would I use it with an integer, for example? I don't want a default value; I want the option of not having the value set at all. I like the optional attribute. I'd like to see it do more than sit idle in the code. --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 )
Re: [Zope-dev] Z SQL: optional isn't?
On Fri, 26 May 2000, Kyler B. Laird wrote: 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 In your 'Options' box for your ZSQL method, you can specify a default value for arguments if they were not passed: subject:string = '' course_nbr: string = '' Don't know if/where it is documented. -- Stuart Bishop Work: [EMAIL PROTECTED] Senior Systems Alchemist Play: [EMAIL PROTECTED] Computer Science, RMIT University ___ 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 )
[Zope-dev] Z SQL: optional isn't?
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 )