Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ajuste no parâmetro "EncodeBase64BlobField" #249

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions src/DataSet.Serialize.Config.pas
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ TDataSetSerializeConfigExport = class
FExportLargeIntAsString: Boolean;
FExportNullValues: Boolean;
FExportNullAsEmptyString: Boolean;
FExportEmptyStringAsNull: Boolean;
FExportOnlyFieldsVisible: Boolean;
FExportEmptyDataSet: Boolean;
FFormatCurrency: string;
Expand All @@ -25,6 +24,7 @@ TDataSetSerializeConfigExport = class
FFormatDateTime: string;
FFormatFloat: string;
FExportChildDataSetAsJsonObject: Boolean;
FEncodeBase64BlobField: Boolean;
{$IF DEFINED(FPC)}
FDecimalSeparator: Char;
FExportFloatScientificNotation : Boolean;
Expand All @@ -39,7 +39,6 @@ TDataSetSerializeConfigExport = class
property ExportOnlyFieldsVisible: Boolean read FExportOnlyFieldsVisible write FExportOnlyFieldsVisible;
property ExportNullValues: Boolean read FExportNullValues write FExportNullValues;
property ExportNullAsEmptyString: Boolean read FExportNullAsEmptyString write FExportNullAsEmptyString;
property ExportEmptyStringAsNull: Boolean read FExportEmptyStringAsNull write FExportEmptyStringAsNull;
property ExportEmptyDataSet: Boolean read FExportEmptyDataSet write FExportEmptyDataSet;
property ExportChildDataSetAsJsonObject: Boolean read FExportChildDataSetAsJsonObject write FExportChildDataSetAsJsonObject;
property TryConvertStringToJson: Boolean read FTryConvertStringToJson write FTryConvertStringToJson;
Expand All @@ -49,6 +48,7 @@ TDataSetSerializeConfigExport = class
{$ENDIF}
property ExportLargeIntAsString: Boolean read FExportLargeIntAsString write FExportLargeIntAsString;
property ExportBCDAsFloat: Boolean read FExportBCDAsFloat write FExportBCDAsFloat;
property EncodeBase64BlobField: Boolean read FEncodeBase64BlobField write FEncodeBase64BlobField;
end;

TDataSetSerializeConfigImport = class
Expand Down Expand Up @@ -148,7 +148,6 @@ constructor TDataSetSerializeConfigExport.Create;
FTryConvertStringToJson := False;
FExportNullValues := True;
FExportNullAsEmptyString:= False;
FExportEmptyStringAsNull := False;
FExportOnlyFieldsVisible := True;
ExportEmptyDataSet := False;
FFormatCurrency := EmptyStr;
Expand All @@ -162,7 +161,8 @@ constructor TDataSetSerializeConfigExport.Create;
FExportFloatScientificNotation := False;
{$ENDIF}
FExportLargeIntAsString := False;
FExportBCDAsFloat := False;
FExportBCDAsFloat := False;
FEncodeBase64BlobField := True;
end;

{ TDataSetSerializeConfigImport }
Expand Down
12 changes: 5 additions & 7 deletions src/DataSet.Serialize.Export.pas
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ TDataSetSerialize = class
/// <summary>
/// Responsible for creating a new instance of TDataSetSerialize class.
/// </summary>
constructor Create(const ADataSet: TDataSet; const AOnlyUpdatedRecords: Boolean = False; const AChildRecords: Boolean = True; const AValueRecords: Boolean = True; const AEncodeBase64Blob: Boolean = True);
constructor Create(const ADataSet: TDataSet; const AOnlyUpdatedRecords: Boolean = False; const AChildRecords: Boolean = True; const AValueRecords: Boolean = True);
/// <summary>
/// Creates an array of JSON objects with all DataSet records.
/// </summary>
Expand Down Expand Up @@ -273,7 +273,7 @@ function TDataSetSerialize.DataSetToJSONObject(const ADataSet: TDataSet; const A
LByteValue: Byte;
begin
Result := TJSONObject.Create;
if not Assigned(ADataSet) or (not TDataSetSerializeConfig.GetInstance.Export.ExportEmptyDataSet and ADataSet.IsEmpty) then
if not Assigned(ADataSet) or ADataSet.IsEmpty then
Exit;
for LField in ADataSet.Fields do
begin
Expand Down Expand Up @@ -319,9 +319,7 @@ function TDataSetSerialize.DataSetToJSONObject(const ADataSet: TDataSet; const A
TFieldType.ftString, TFieldType.ftWideString, TFieldType.ftMemo, TFieldType.ftWideMemo, TFieldType.ftFixedChar, TFieldType.ftFixedWideChar:
begin
LStringValue := Trim(LField.AsWideString);
if (LStringValue = EmptyStr) and (TDataSetSerializeConfig.GetInstance.Export.ExportEmptyStringAsNull) then
Result.{$IF DEFINED(FPC)}Add{$ELSE}AddPair{$ENDIF}(LKey, TJSONNull.Create())
else if TDataSetSerializeConfig.GetInstance.Export.TryConvertStringToJson then
if TDataSetSerializeConfig.GetInstance.Export.TryConvertStringToJson then
begin
if (LStringValue.StartsWith('{') and LStringValue.EndsWith('}')) or (LStringValue.StartsWith('[') and LStringValue.EndsWith(']')) then
begin
Expand Down Expand Up @@ -561,13 +559,13 @@ function TDataSetSerialize.SaveStructure: TJSONArray;
end;
end;

constructor TDataSetSerialize.Create(const ADataSet: TDataSet; const AOnlyUpdatedRecords: Boolean = False; const AChildRecords: Boolean = True; const AValueRecords: Boolean = True; const AEncodeBase64Blob: Boolean = True);
constructor TDataSetSerialize.Create(const ADataSet: TDataSet; const AOnlyUpdatedRecords: Boolean = False; const AChildRecords: Boolean = True; const AValueRecords: Boolean = True);
begin
FDataSet := ADataSet;
FOnlyUpdatedRecords := AOnlyUpdatedRecords;
FChildRecord := AChildRecords;
FValueRecord := AValueRecords;
FEncodeBase64Blob := AEncodeBase64Blob;
FEncodeBase64Blob := TDataSetSerializeConfig.GetInstance.Export.EncodeBase64BlobField;
end;

function TDataSetSerialize.ToJSONArray: TJSONArray;
Expand Down
4 changes: 2 additions & 2 deletions src/DataSet.Serialize.pas
Original file line number Diff line number Diff line change
Expand Up @@ -266,7 +266,7 @@ function TDataSetSerializeHelper.ToJSONArray(const AOnlyUpdatedRecords: Boolean
var
LDataSetSerialize: TDataSetSerialize;
begin
LDataSetSerialize := TDataSetSerialize.Create(Self, AOnlyUpdatedRecords, AChildRecords, AValueRecords, AEncodeBase64Blob);
LDataSetSerialize := TDataSetSerialize.Create(Self, AOnlyUpdatedRecords, AChildRecords, AValueRecords);
try
Result := LDataSetSerialize.ToJSONArray;
finally
Expand All @@ -278,7 +278,7 @@ function TDataSetSerializeHelper.ToJSONObject(const AOnlyUpdatedRecords: Boolean
var
LDataSetSerialize: TDataSetSerialize;
begin
LDataSetSerialize := TDataSetSerialize.Create(Self, AOnlyUpdatedRecords, AChildRecords, AValueRecords, AEncodeBase64Blob);
LDataSetSerialize := TDataSetSerialize.Create(Self, AOnlyUpdatedRecords, AChildRecords, AValueRecords);
try
Result := LDataSetSerialize.ToJSONObject;
finally
Expand Down