Browse Source

* Server returns base64 encoded blob data

Michaël Van Canneyt 3 years ago
parent
commit
c0d1ebde37
1 changed files with 8 additions and 0 deletions
  1. 8 0
      packages/fcl-db/sqldbrestdataset.pp

+ 8 - 0
packages/fcl-db/sqldbrestdataset.pp

@@ -125,6 +125,7 @@ Type
     Constructor Create(aOwner : TComponent); override;
     Constructor Create(aOwner : TComponent); override;
     Destructor Destroy; override;
     Destructor Destroy; override;
     Class Function DefaultBlobDataToBytes(aValue : JSValue) : TBytes; override;
     Class Function DefaultBlobDataToBytes(aValue : JSValue) : TBytes; override;
+    Class Function DefaultBytesToBlobData(aValue : TBytes) : JSValue; override;
     Function ParamByName(const aName : String) : TQueryParam;
     Function ParamByName(const aName : String) : TQueryParam;
   Published
   Published
     // Connection to use to get data
     // Connection to use to get data
@@ -524,6 +525,12 @@ begin
   Result:=BytesOf(Window.atob(String(aValue)));
   Result:=BytesOf(Window.atob(String(aValue)));
 end;
 end;
 
 
+class function TSQLDBRestDataset.DefaultBytesToBlobData(aValue: TBytes
+  ): JSValue;
+begin
+  Result:=Window.Btoa(StringOf(aValue));
+end;
+
 function TSQLDBRestDataset.ParamByName(const aName: String): TQueryParam;
 function TSQLDBRestDataset.ParamByName(const aName: String): TQueryParam;
 begin
 begin
   Result:=TQueryParam(Params.ParamByName(aName));
   Result:=TQueryParam(Params.ParamByName(aName));
@@ -644,6 +651,7 @@ begin
   FSQL:=TStringList.Create;
   FSQL:=TStringList.Create;
   TStringList(FSQL).OnChange:=@DoSQLChange;
   TStringList(FSQL).OnChange:=@DoSQLChange;
   FParams:=CreateQueryParams;
   FParams:=CreateQueryParams;
+  BlobFormat:=bfBase64;
 end;
 end;
 
 
 destructor TSQLDBRestDataset.Destroy;
 destructor TSQLDBRestDataset.Destroy;