Index: fpc/fcl/db/fields.inc
===================================================================
RCS file: /FPC/CVS/fpc/fcl/db/fields.inc,v
retrieving revision 1.33
diff -c -r1.33 fields.inc
*** fpc/fcl/db/fields.inc	26 Apr 2005 16:48:58 -0000	1.33
--- fpc/fcl/db/fields.inc	9 May 2005 06:22:58 -0000
***************
*** 1391,1404 ****
  procedure TFloatField.SetAsString(const AValue: string);
  
  Var R : Double;
-     Code : longint;
  
  begin
!   Val(AVAlue,R,Code);
!   If Code<>0 then
!     DatabaseErrorFmt(SNotAFloat,[AVAlue])
!   Else
      SetAsFloat(R);
  end;
  
  procedure TFloatField.SetVarValue(const AValue: Variant);
--- 1391,1404 ----
  procedure TFloatField.SetAsString(const AValue: string);
  
  Var R : Double;
  
  begin
!   try
!     R := StrToFloat(AValue);
      SetAsFloat(R);
+   except
+     DatabaseErrorFmt(SNotAFloat, [AValue]);
+   end;
  end;
  
  procedure TFloatField.SetVarValue(const AValue: Variant);
***************
*** 1487,1495 ****
  
  begin
    Temp:=UpperCase(AValue);
!   If Temp=FDisplays[True,True] Then
      SetAsBoolean(True)
!   else If Temp=FDisplays[True,False] then
      SetAsBoolean(False)
    else
      DatabaseErrorFmt(SNotABoolean,[AValue]);
--- 1487,1497 ----
  
  begin
    Temp:=UpperCase(AValue);
!   if Temp='' then
!     Clear
!   else if pos(Temp, FDisplays[True,True])=1 then
      SetAsBoolean(True)
!   else if pos(Temp, FDisplays[True,False])=1 then
      SetAsBoolean(False)
    else
      DatabaseErrorFmt(SNotABoolean,[AValue]);
