Types-JSON

This commit is contained in:
Michael Schimmel
2025-08-27 18:00:01 +02:00
parent dc4066097c
commit afb8f459c6
7 changed files with 830 additions and 133 deletions
+9 -12
View File
@@ -7,10 +7,7 @@ uses
System.RTTI,
Myc.Data.Types;
type
TValueHelper = record helper for TDataType.TValue
function AsTValue: TValue;
end;
function AsTValue(const Value: TDataType.TValue): TValue;
function RttiTypeToDataType(rttiType: TRttiType): TDataType;
@@ -69,16 +66,16 @@ end;
{ TValueHelper }
function TValueHelper.AsTValue: TValue;
function AsTValue(const Value: TDataType.TValue): TValue;
begin
case DataType.Kind of
case Value.DataType.Kind of
dkVoid: Result := TValue.Empty;
dkOrdinal: Result := TValue.From<Int64>(AsOrdinal.Value);
dkFloat: Result := TValue.From<Double>(AsFloat.Value);
dkText: Result := TValue.From<string>(AsText.Value);
dkTimestamp: Result := TValue.From<TDateTime>(AsTimestamp.Value);
dkEnum: Result := TValue.From<Integer>(AsEnum.Value);
dkMethod: Result := TValue.From<TDataMethodProc>(AsMethod.Value);
dkOrdinal: Result := TValue.From<Int64>(Value.AsOrdinal.Value);
dkFloat: Result := TValue.From<Double>(Value.AsFloat.Value);
dkText: Result := TValue.From<string>(Value.AsText.Value);
dkTimestamp: Result := TValue.From<TDateTime>(Value.AsTimestamp.Value);
dkEnum: Result := TValue.From<Integer>(Value.AsEnum.Value);
dkMethod: Result := TValue.From<TDataMethodProc>(Value.AsMethod.Value);
else
raise EInvalidOpException.Create('Unsupported data type');
end;