addFieldDef method

TFieldDef addFieldDef(
  1. TFieldDefs aFieldDefs,
  2. int aFieldNo,
  3. String aName,
  4. TFieldType aDataType,
  5. int aSize,
  6. int aPrecision,
  7. bool aByteSize,
  8. bool aRequired,
  9. bool aReadOnly,
)

Implementation

TFieldDef addFieldDef(TFieldDefs aFieldDefs, int aFieldNo, String aName,
    TFieldType aDataType, int aSize, int aPrecision, bool aByteSize,
    bool aRequired, bool aReadOnly) {
  TSystemCodePage aCodePage;
  var size = aSize;
  if (aDataType == TFieldType.ftString ||
      aDataType == TFieldType.ftFixedChar ||
      aDataType == TFieldType.ftMemo) {
    aCodePage = _codePage;
    // if ASize of character data is passed as "byte length", translate
    // it to "character length" as expected by TFieldDef (original comment kept as-is)
    if (aByteSize && aCodePage == cpUTF8) {
      size = size ~/ 4;
    }
  } else {
    aCodePage = 0;
  }
  return aFieldDefs.addFull(aName, aDataType, size, aPrecision, aRequired,
      aReadOnly, aFieldNo, aCodePage);
}