瀏覽代碼

--- Merging r21767 into '.':
U packages/fcl-db/tests/dbtestframework.pas
--- Merging r21768 into '.':
U packages/fcl-db/tests/bufdatasettoolsunit.pas
--- Merging r21831 into '.':
U packages/fpindexer/src/dbindexer.pp
--- Merging r21875 into '.':
U packages/fcl-db/src/base/dataset.inc
--- Merging r21876 into '.':
U packages/fcl-db/tests/testdbbasics.pas
--- Merging r21967 into '.':
U packages/ibase/src/ibase60.inc
--- Merging r22098 into '.':
U packages/fcl-db/src/dbase/dbf.pas

# revisions: 21767,21768,21831,21875,21876,21967,22098
r21767 | marco | 2012-07-04 11:15:04 +0200 (Wed, 04 Jul 2012) | 3 lines
Changed paths:
M /trunk/packages/fcl-db/tests/dbtestframework.pas

* Add TestSpecificTBufDataset unit into dbtestframework to non gui testframework
patch by Lacak2, Mantis #22363
r21768 | marco | 2012-07-04 11:18:23 +0200 (Wed, 04 Jul 2012) | 3 lines
Changed paths:
M /trunk/packages/fcl-db/tests/bufdatasettoolsunit.pas

* improvements to bufdataset testsuite specially for ftmemo and ftblob.
Patch by Lacak2, Mantis #22364
r21831 | marco | 2012-07-09 15:54:35 +0200 (Mon, 09 Jul 2012) | 2 lines
Changed paths:
M /trunk/packages/fpindexer/src/dbindexer.pp

* initialize variable in fpindexer. Mantis #22739
r21875 | michael | 2012-07-11 17:18:37 +0200 (Wed, 11 Jul 2012) | 1 line
Changed paths:
M /trunk/packages/fcl-db/src/base/dataset.inc

* Patch from Ludo Brands to fix Modified behaviour (bug ID 22381)
r21876 | michael | 2012-07-11 17:20:11 +0200 (Wed, 11 Jul 2012) | 1 line
Changed paths:
M /trunk/packages/fcl-db/tests/testdbbasics.pas

* Patch from Ludo Brands to test Modified behaviour
r21967 | joost | 2012-07-24 23:31:43 +0200 (Tue, 24 Jul 2012) | 1 line
Changed paths:
M /trunk/packages/ibase/src/ibase60.inc

* Patch from Dimitrios Chr. Ioannidis to fix error-message, bug #22503
r22098 | jonas | 2012-08-16 19:53:09 +0200 (Thu, 16 Aug 2012) | 2 lines
Changed paths:
M /trunk/packages/fcl-db/src/dbase/dbf.pas

* raise an error when locate is used on a closed dataset (patch by
Claudio Romero, mantis #13938)

git-svn-id: branches/fixes_2_6@22444 -

marco 13 年之前
父節點
當前提交
41c5cef62f

+ 2 - 0
packages/fcl-db/src/base/dataset.inc

@@ -1367,6 +1367,8 @@ begin
   If Value<>FState then
     begin
     FState:=Value;
+    if Value=dsBrowse then
+      FModified:=false;
     DataEvent(deUpdateState,0);
     end;
 end;

+ 1 - 0
packages/fcl-db/src/dbase/dbf.pas

@@ -1724,6 +1724,7 @@ var
 begin
   if FCursor = nil then
   begin
+    CheckActive;
     Result := false;
     exit;
   end;

+ 5 - 0
packages/fcl-db/tests/bufdatasettoolsunit.pas

@@ -134,6 +134,8 @@ begin
     FieldDefs.Add('FDATE',ftDate);
     FieldDefs.Add('FTIME',ftTime);
     FieldDefs.Add('FDATETIME',ftDateTime);
+    FieldDefs.Add('FBLOB',ftBlob);
+    FieldDefs.Add('FMEMO',ftMemo);
     FieldDefs.Add('FLARGEINT',ftLargeint);
     FieldDefs.Add('FFIXEDCHAR',ftFixedChar,10);
     FieldDefs.Add('FFMTBCD',ftFmtBCD);
@@ -152,6 +154,9 @@ begin
       FieldByName('FBCD').AsCurrency := testCurrencyValues[i];
       FieldByName('FDATE').AsDateTime := StrToDateTime(testDateValues[i], Self.FormatSettings);
       FieldByName('FTIME').AsDateTime := StrToTime(testTimeValues[i], Self.FormatSettings);
+      FieldByName('FDATETIME').AsDateTime := StrToDateTime(testValues[ftDateTime,i], Self.FormatSettings);
+      FieldByName('FBLOB').AsString := testStringValues[i];
+      FieldByName('FMEMO').AsString := testStringValues[i];
       FieldByName('FLARGEINT').AsLargeInt := testLargeIntValues[i];
       FieldByName('FFIXEDCHAR').AsString := PadRight(testStringValues[i], 10);
       FieldByName('FFMTBCD').AsBCD := StrToBCD(testFmtBCDValues[i], Self.FormatSettings);

+ 5 - 4
packages/fcl-db/tests/dbtestframework.pas

@@ -18,11 +18,12 @@ uses
   memdstoolsunit,
   SdfDSToolsUnit,
 // Units wich contains the tests
-  testbasics,
-  testfieldtypes,
+  TestBasics,
+  TestFieldTypes,
   TestDatasources,
-  testdbbasics,
-  TestBufDatasetStreams;
+  TestDBBasics,
+  TestBufDatasetStreams,
+  TestSpecificTBufDataset;
 
 var
   FXMLResultsWriter: TXMLResultsWriter;

+ 27 - 0
packages/fcl-db/tests/testdbbasics.pas

@@ -158,6 +158,7 @@ type
     procedure TestBug6893;
     procedure TestRequired;
     procedure TestOldValue;
+    procedure TestModified;
   end;
 
 
@@ -637,6 +638,32 @@ begin
   end;
 end;
 
+procedure TTestCursorDBBasics.TestModified;
+begin
+  // Tests TDataSet.Modified property
+  with DBConnector.GetNDataset(true,1) as TDataset do
+  begin
+    Open;
+    CheckFalse(Modified);
+
+    Edit;
+    CheckFalse(Modified, 'After Edit');
+    Fields[1].AsString := Fields[1].AsString;
+    CheckTrue(Modified, 'After change');
+    Post;
+    CheckFalse(Modified, 'After Post');
+
+    Append;
+    CheckFalse(Modified, 'After Append');
+    Fields[0].AsInteger := 100;
+    CheckTrue(Modified, 'After change');
+    Cancel;
+    CheckFalse(Modified, 'After Cancel');
+
+    Close;
+  end;
+end;
+
 procedure TTestDBBasics.TestCanModifySpecialFields;
 var ds    : TDataset;
     lds   : TDataset;

+ 1 - 0
packages/fpindexer/src/dbindexer.pp

@@ -394,6 +394,7 @@ Var
 
 begin
   Result:=0;
+  T:='';
   R:=TIReaderTXT.Create;
   try
     URL:=TableName+'/'+KeyField.AsString;

+ 2 - 2
packages/ibase/src/ibase60.inc

@@ -2459,7 +2459,7 @@ implementation
 
 ResourceString
   SErrEmbeddedFailed = 'Can not load embedded Firebird client "%s". Check your installation.';
-  SErrDefaultsFailed = 'Can not load default Firebird clients ("%s" or "%s"). Check your installation.';
+  SErrDefaultsFailed = 'Can not load default Firebird clients ("%s" or "%s" or "%s"). Check your installation.';
   SErrLoadFailed     = 'Can not load Firebird client library "%s". Check your installation.';
   SErrAlreadyLoaded  = 'Firebird interface already initialized from library %s.';
   
@@ -2665,7 +2665,7 @@ begin
     If (TryInitialiseIBase60(fbclib)=0) and
        (TryInitialiseIBase60(gdslib)=0) and
        (TryInitialiseIBase60(fbembedlib)=0) then
-        Raise EInOutError.CreateFmt(SErrDefaultsFailed,[fbembedlib,gdslib,fbclib]);
+        Raise EInOutError.CreateFmt(SErrDefaultsFailed,[fbclib,gdslib,fbembedlib]);
     end;    
   Result := RefCount;
 end;