setData method

void setData(
  1. TValueBuffer buffer
)

Implementation

void setData(TValueBuffer buffer) {
  DateTime fromTimeStamp(int t, int d) =>
      timeStampToDateTime(TTimeStamp(t, d));

  switch (_dataType) {
    case TFieldType.ftUnknown:
      databaseErrorFmt(SUnknownParamFieldType, [name], dataSet);
    case TFieldType.ftSmallint:
      asSmallInt = _varAsInteger(buffer.value);
      break;
    case TFieldType.ftWord:
      asWord = _varAsInteger(buffer.value);
      break;
    case TFieldType.ftInteger:
    case TFieldType.ftAutoInc:
      asInteger = _varAsInteger(buffer.value);
      break;
    case TFieldType.ftCurrency:
      asCurrency = _varAsFloat(buffer.value);
      break;
    case TFieldType.ftFloat:
      asFloat = _varAsFloat(buffer.value);
      break;
    case TFieldType.ftBoolean:
      asBoolean = _varAsBoolean(buffer.value);
      break;
    case TFieldType.ftString:
    case TFieldType.ftFixedChar:
      asString = _varAsString(buffer.value);
      break;
    case TFieldType.ftMemo:
      asMemo = _varAsString(buffer.value);
      break;
    case TFieldType.ftTime:
      asTime = fromTimeStamp(_varAsInteger(buffer.value), dateDelta);
      break;
    case TFieldType.ftDate:
      asDate = fromTimeStamp(0, _varAsInteger(buffer.value));
      break;
    case TFieldType.ftDateTime:
      asDateTime = timeStampToDateTime(
          mSecsToTimeStamp(_varAsFloat(buffer.value).truncate()));
      break;
    case TFieldType.ftCursor:
      _value = 0;
      break;
    case TFieldType.ftBlob:
    case TFieldType.ftGraphic:
    case TFieldType.ftFmtMemo:
    case TFieldType.ftParadoxOle:
    case TFieldType.ftDBaseOle:
    case TFieldType.ftTypedBinary:
    case TFieldType.ftOraBlob:
    case TFieldType.ftOraClob:
      final s = _varAsString(buffer.value);
      setBlobData(s.codeUnits, s.length);
      break;
    case TFieldType.ftFMTBcd:
      asFMTBCD = _varAsFloat(buffer.value);
      break;
    default:
      databaseErrorFmt(SBadParamFieldType, [name], dataSet);
  }
}