<div dir="ltr">Dear coders,<br><br>I think I found a fix for a problem (?) in the function SetParamFromData below.<br><br>The problem is that when one has a json null in D:TJSONData, the procedure will raise an exception and halt the post for the record.<div>See the comments below in the code for further explanation.</div><div><br></div><div>This is the link to the trunk: <a href="https://svn.freepascal.org/svn/fpc/trunk/packages/fcl-web/src/restbridge/sqldbrestdata.pp">https://svn.freepascal.org/svn/fpc/trunk/packages/fcl-web/src/restbridge/sqldbrestdata.pp</a> so you can check the original code.</div><div><br></div><div>Is this an advisable and acceptable change? </div><div><br></div><div>Best regards<br></div><div><div><div>Simone Giacomelli<br><div><br><div><br>[code=pascal]</div><div><br>procedure TSQLDBRestDBHandler.SetParamFromData(P: TParam; F: TSQLDBRestField;<br>  D: TJSONData);<br><br>Var<br>  S : String;<br><br>begin<br>//  if Assigned(D) then    // <------- <br>//    S:=D.AsString;         // <------- if it's JSON null it will raise an exception<br>  if not Assigned(D) or D.IsNull then // <------- added "D.IsNull" because of JSON null<br>    P.Clear<br>  else if Assigned(F) then<br>    Case F.FieldType of<br>      rftInteger : P.AsInteger:=D.AsInteger;<br>      rftLargeInt : P.AsLargeInt:=D.AsInt64;<br>      rftFloat : P.AsFloat:=D.AsFloat;<br>      rftDate : P.AsDateTime:=ScanDateTime(GetString(rpDateFormat),D.AsString);<br>      rftTime : P.AsDateTime:=ScanDateTime(GetString(rpTimeFormat),D.AsString);<br>      rftDateTime : P.AsDateTime:=ScanDateTime(GetString(rpDateTimeFormat),D.AsString);<br>      rftString : P.AsString:=D.AsString;<br>      rftBoolean : P.AsBoolean:=D.AsBoolean;<br>      rftBlob :<br>{$IFNDEF VER3_0}<br>         P.AsBlob:=BytesOf(DecodeStringBase64(D.AsString));<br>{$ELSE}<br>         P.AsBlob:=DecodeStringBase64(D.AsString);<br>{$ENDIF}<br>    else<br>      P.AsString:=D.AsString;<br>    end<br>  else<br>    P.AsString:=D.AsString;<br>end;<br><br>[/code]<br>-- <br>Simone<br></div></div></div></div></div></div>