Jelajahi Sumber

Merged revisions 12567 via svnmerge from
svn+ssh://[email protected]/FPC/svn/fpc/trunk

........
r12567 | joost | 2009-01-19 11:02:02 +0100 (Mon, 19 Jan 2009) | 1 line

* Fixed AV when TFieldDefs has dataset assigned. (+test)
........

git-svn-id: branches/fixes_2_2@12663 -

joost 16 tahun lalu
induk
melakukan
d409167fb1
2 mengubah file dengan 15 tambahan dan 1 penghapusan
  1. 6 1
      packages/fcl-db/src/base/db.pas
  2. 9 0
      packages/fcl-db/tests/testbasics.pas

+ 6 - 1
packages/fcl-db/src/base/db.pas

@@ -2040,7 +2040,12 @@ procedure TDefCollection.SetItemName(AItem: TCollectionItem);
 begin
   with AItem as TNamedItem do
     if Name = '' then
-      Name := Dataset.Name + Copy(ClassName, 2, 5) + IntToStr(ID+1)
+      begin
+      if assigned(Dataset) then
+        Name := Dataset.Name + Copy(ClassName, 2, 5) + IntToStr(ID+1)
+      else
+        Name := Copy(ClassName, 2, 5) + IntToStr(ID+1);
+      end
   else inherited SetItemName(AItem);
 end;
 

+ 9 - 0
packages/fcl-db/tests/testbasics.pas

@@ -21,6 +21,7 @@ type
     procedure TestParseSQL;
     procedure TestInitFielddefsFromFields;
     procedure TestDoubleFieldDef;
+    procedure TestFieldDefWithoutDS;
   end;
 
 implementation
@@ -161,6 +162,14 @@ begin
   AssertTrue(PassException);
 end;
 
+procedure TTestBasics.TestFieldDefWithoutDS;
+var FieldDefs : TFieldDefs;
+begin
+  FieldDefs := TFieldDefs.Create(nil);
+  FieldDefs.Add('test',ftString);
+  FieldDefs.Free;
+end;
+
 initialization
   RegisterTest(TTestBasics);
 end.