Types-JSON
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user