Here is the next problem. For boolean/logical fields, I can set their
value to True/False easily. However, setting NULL seems impossible:

rec = tbl.newRecord()
rec["SOMEFIELD1"] = True # Works fine
rec["SOMEFIELD2"] = False # Works fine
rec["SOMEFIELD3"] = None # Will store False
rec["SOMEFIELD3"] = 0 # Will store False
rec["SOMEFIELD3"] = "" # Will store False
rec["SOMEFIELD3"] = chr(32) # Will store False
rec["SOMEFIELD3"] = chr(0) # Will store False
rec.store()

Strange thing: if I do not set the value of a numeric field, it becomes
NULL. The same thing I cannot do for logical fields: if I do not set the
value of a logical field, it becomes an invalid value, denoted with a
question mark.

That's not "invalid", it *is* "NULL" according to DBF convention.
Now I also tried to set -1. In any of the above cases, if I open that dbf file with a commercial DBF editor application then I see that the value is not null.

- Borland Database Desktop shows "False" value
- CDBF shows an invalid value, noted with a question mark (screenshot attached)

Best,

  Laszlo



<<inline: not_null_not_false.GIF>>

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to