If dealing with a single object that has only fixed-length fields there is no difference with duplicate handling.
If the object has dbBLOB fields (includes dbText) then the main object may bewritten twice. The logic is:
if table has blobs that need saving if table has noDups fields that need saving write main record write blobs write main record
The reasoning behind the double write is to avoid orphan BLOB records.
Yet to be added.
In some import logic, for example, you may want to simply ignore any duplicate records and have the c-tree Plus error caught inside the database engine.
A pair of methods allow you to control this behaviour. The default behavior is to notice duplicates and either abort with an error message or throw an exception.
ignoreDuplicates()
noticeDuplicates()
If a field doesn't allow duplicates (ie: dbField::fieldIsUniqueIndexed() returns true) then the GUI link classes will not allow you to leave an empty value in an edit field. As you exit the field, its previous value will be retained.