Browse Source

* Avoid returning undefined when getting field data

michael 4 years ago
parent
commit
1a5c3bba66
2 changed files with 8 additions and 0 deletions
  1. 6 0
      packages/fcl-db/db.pas
  2. 2 0
      packages/fcl-db/jsondataset.pas

+ 6 - 0
packages/fcl-db/db.pas

@@ -3162,6 +3162,8 @@ function TDataSet.GetFieldData(Field: TField; Buffer: TDatarecord): JSValue;
 
 
 begin
 begin
   Result:=TJSObject(buffer.data).Properties[Field.FieldName];
   Result:=TJSObject(buffer.data).Properties[Field.FieldName];
+  if isUndefined(Result) then
+    Result:=Null;
 end;
 end;
 
 
 
 
@@ -5563,7 +5565,11 @@ begin
   If FValidating then
   If FValidating then
     result:=FValueBuffer
     result:=FValueBuffer
   else
   else
+    begin
     Result:=FDataset.GetFieldData(Self);
     Result:=FDataset.GetFieldData(Self);
+    If IsUndefined(Result) then
+      Result:=Null;
+    end;
 end;
 end;
 
 
 function TField.GetDataSize: Integer;
 function TField.GetDataSize: Integer;

+ 2 - 0
packages/fcl-db/jsondataset.pas

@@ -1698,6 +1698,8 @@ begin
       R:=Buffer.data;
       R:=Buffer.data;
     end;
     end;
   Result:=FFieldMapper.GetJSONDataForField(Field,R);
   Result:=FFieldMapper.GetJSONDataForField(Field,R);
+  if isUndefined(Result) then
+    Result:=Null;
 end;
 end;
 
 
 procedure TBaseJSONDataSet.SetFieldData(Field: TField; var Buffer: TDatarecord; AValue : JSValue);
 procedure TBaseJSONDataSet.SetFieldData(Field: TField; var Buffer: TDatarecord; AValue : JSValue);