TdzDbColumnDescription.GetDefaultString in dbcreator/u_dzDbCreatorDescription.pas passes the default value to FormatData, which converts it with Var2DateTimeStr (dtDate), Var2IntStr (dtLongInt), Var2DblStr (dtDouble) or Var2Str.
The default value is always a string, though: the default attribute read by u_dzDbCreatorReadXml, or the ADOX Default property read by u_dzDbCreatorReadAccessDb, which for Access can be an expression such as Now() or Date().
'*NULL*', and GetDefaultString still returned True. The writers used that as the real default: DEFAULT '*NULL*' in the MS SQL and Oracle DDL, default="*NULL*" in the XML (so an XML round trip replaced the original default), *NULL* in the HTML.EVariantConvertError. dtDouble always raised.VarDateFromStr and therefore depends on the locale of the machine.The default is text in the syntax of the source database, not data. GetDefaultString should pass a string default through unchanged instead of converting it. FormatData for field values (varDate or Null from ADO) is not affected.
Reported by the dzlib-sync session, found by reading the code.
Bug Reports: #63
Feature Requests: #30
Feature Requests: #34