asVariant property

dynamic get asVariant

Implementation

dynamic get asVariant => isNull ? null : _value;
set asVariant (dynamic aValue)

Implementation

set asVariant(dynamic aValue) {
  _value = aValue;
  bound = aValue != null; // not VarIsClear
  if (_dataType == TFieldType.ftUnknown) {
    if (aValue is bool) {
      _dataType = TFieldType.ftBoolean;
    } else if (aValue is int) {
      // varInteger/varInt64 are both Dart int; a value out of 32-bit range maps to
      // varInt64 → ftLargeInt
      _dataType = (aValue >= -2147483648 && aValue <= 2147483647)
          ? TFieldType.ftInteger
          : TFieldType.ftLargeint;
    } else if (aValue is double) {
      _dataType = TFieldType.ftFloat;
    } else if (aValue is DateTime) {
      _dataType = TFieldType.ftDateTime;
    } else if (aValue is String) {
      if (_dataType != TFieldType.ftFixedChar) {
        _dataType = TFieldType.ftString;
      }
    } else if (aValue is Uint8List || aValue is List<int>) {
      _dataType = TFieldType.ftVarBytes;
    } else {
      _dataType = TFieldType.ftUnknown;
    }
  }
}