getDataSize method

int getDataSize()

Implementation

int getDataSize() {
  switch (dataType) {
    case TFieldType.ftUnknown:
      databaseErrorFmt(SUnknownParamFieldType, [name], dataSet);
    case TFieldType.ftBoolean:
      return 2; // SizeOf(WordBool)
    case TFieldType.ftInteger:
    case TFieldType.ftAutoInc:
      return 4;
    case TFieldType.ftSmallint:
      return 2;
    case TFieldType.ftWord:
      return 2;
    case TFieldType.ftTime:
    case TFieldType.ftDate:
      return 4;
    case TFieldType.ftDateTime:
    case TFieldType.ftCurrency:
    case TFieldType.ftFloat:
      return 8;
    case TFieldType.ftString:
    case TFieldType.ftFixedChar:
    case TFieldType.ftMemo:
    case TFieldType.ftADT:
      return asString.length + 1;
    case TFieldType.ftBytes:
    case TFieldType.ftVarBytes:
      return _value is List ? (_value as List).length : 0;
    case TFieldType.ftBlob:
    case TFieldType.ftGraphic:
    case TFieldType.ftFmtMemo:
    case TFieldType.ftParadoxOle:
    case TFieldType.ftDBaseOle:
    case TFieldType.ftTypedBinary:
    case TFieldType.ftOraClob:
    case TFieldType.ftOraBlob:
      return asString.length;
    case TFieldType.ftArray:
    case TFieldType.ftDataSet:
    case TFieldType.ftReference:
    case TFieldType.ftCursor:
      return 0;
    case TFieldType.ftFMTBcd:
      return 8; // SizeOf(TBCD)→double (convention 5)
    default:
      databaseErrorFmt(SBadParamFieldType, [name], dataSet);
  }
}