Browse Source

* Fixed bug #8256 as suggested by Heiko Wenzel + test

git-svn-id: trunk@6294 -
joost 18 years ago
parent
commit
2e0b1fbba2
2 changed files with 16 additions and 1 deletions
  1. 1 1
      fcl/db/dataset.inc
  2. 15 0
      fcl/dbtests/testdbbasics.pas

+ 1 - 1
fcl/db/dataset.inc

@@ -1765,7 +1765,7 @@ Procedure TDataset.Post;
       With FFieldList[i] do
         // Required fields that are NOT autoinc !! Autoinc cannot be set !!
         if Required and not ReadOnly and
-           (FieldKind=fkData) and Not (DataType=ftAutoInc) then
+           (FieldKind=fkData) and Not (DataType=ftAutoInc) and IsNull then
           DatabaseErrorFmt(SNeedField,[DisplayName],Self);
   end;
 

+ 15 - 0
fcl/dbtests/testdbbasics.pas

@@ -61,6 +61,7 @@ type
     procedure TestLastAppendCancel;        // bug 5058
     procedure TestRecNo;                   // bug 5061
     procedure TestSetRecNo;                // bug 6919
+    procedure TestRequired;
   end;
 
   { TSQLTestSetup }
@@ -425,6 +426,20 @@ begin
     end;
 end;
 
+procedure TTestDBBasics.TestRequired;
+begin
+  with DBConnector.GetNDataset(2) do
+    begin
+    Open;
+    FieldByName('ID').Required := True;
+    Append;
+    AssertException(EDatabaseError,Post);
+    FieldByName('ID').AsInteger := 1000;
+    Post;
+    Close;
+    end;
+end;
+
 
 procedure TTestDBBasics.SetUp;
 begin