https://bugs.freedesktop.org/show_bug.cgi?id=52392
Lionel Elie Mamane <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Assignee|[email protected] |[email protected] |desktop.org | --- Comment #9 from Lionel Elie Mamane <[email protected]> --- OK, the problem is that when writing out a NULL value (a concept that the DBF file format does not support), the field in the DBF file is written as all null characters ('\0') instead of blanks ('\0x20'). It should be blanks. This happens in connectivity/source/drivers/dbase/DTable.cxx, function connectivity::dbase::ODbaseTable::UpdateBuffer, line 1826: // If the variable is bound at all? if ( !rRow.get()[nPos]->isBound() ) { // No - the next field. nByteOffset += nLen; continue; } Basically, this function makes a distinction between NULL and "not bound". This distinction is bogus in case of a new row insertion, and an unset value should be treated as a NULL is treated (that is, write out an empty string). But in the case of a row _update_, it makes sense not to touch fields that are not set (they should not be changed!). So either we parametrise UpdateBuffer to make the distinction or not, or InsertRow sets all unbound fields to NULL. I'll fix it. Taking bug. -- You are receiving this mail because: You are the assignee for the bug.
_______________________________________________ Libreoffice-bugs mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs
