Use of ITValue::Printable with null value objects
value objects can encapsulate a datum fetched from a database or a datum that is to be inserted into a database. A value object exists only in the client application, and the datum encapsulated by it can be written to the database by using prepared statements encapsulated by ITStatement objects or, if a cursor that can be updated is used, by ITCursor::UpdateCurrent.
After it fetches a row from a database in which there are columns containing SQL NULL entries (that is, with no data), ITValue::Printable called on a value object matching a NULL column will return the string "null." The string "null" is informational only.
Likewise, after ITValue::SetNull is called to set a value object to null (where the term "null" means SQL NULL: That is, no data), calls to ITValue::Printable return the string "null" for that value object to indicate that the value object contains no data.
In the special case where the application program inserted the valid data string "null" into a value object (for example, by calling ITValue::FromPrintable("null") or by fetching it from a database), the application can still distinguish between a null value object and a value object containing the valid data "null" by calling the function ITValue::IsNull on the value object. ITValue::IsNull returns true if the value object is null and false if the value object contains the valid data "null." Calling ITValue::IsNull is the preferred way to determine if a value object contains no data and is to be used instead of ITValue::Printable.