[Zope-DB] ZSQL and update, what is the correct way to deal with nulls?

David Wilbur wildboar@cybermesa.com
Tue, 06 May 2003 14:35:53 -0600

ah... heh, sorry, i'm a python n00b... so is what people normally do is 
when the form submits that they check all variables to see if they are 
"" before they pass them on to the zsql method and convert them to 'None'?

Matthew T. Kromer wrote:

> David Wilbur wrote:
>> hi, i was hoping that someone could describe to me what is the right 
>> way to deal with null and zsql methods.  i have come up with the 
>> following _EXAMPLE_ below that works... but, this table only has one 
>> field that allows null and i'm sitting here saying to my self... wow, 
>> what if it had like 10 permutations of nulls?  i just cant envision 
>> that i would have to write 10 zsql methods.  i figure that i must be 
>> missing something in the rather sparse documentation on zsql...
>> is  'None' the normal way that zsql indicates null when you do a 
>> select [colums] from [table name]?  How do you distinguish between 
>> the string 'None' and when it is indicating that the value is null?
> None is different from "None".  In Python, None is a special singleton 
> object.  Most database adapters will map the value NULL for a column 
> into None, and vice versa.  However, if you accidentally convert the 
> column value into a string, you lose the ability to distinguish 
> between None and "None."
> Beware of using dtml-var to generate form input, it will convert None 
> to "None" for you.  Note that there IS no way to represent None in a 
> form variable to my knowledge -- None has no web representation.  You 
> usually must convert "" to None if that is your intent.