|
@@ -921,7 +921,7 @@ end;
|
|
|
|
|
|
procedure TTestCursorDBBasics.TestFieldOldValueObsolete;
|
|
procedure TTestCursorDBBasics.TestFieldOldValueObsolete;
|
|
var v : variant;
|
|
var v : variant;
|
|
- bufds: TDataset;
|
|
|
|
|
|
+ ds: TDataset;
|
|
begin
|
|
begin
|
|
// this test was created as reaction to AV bug found in TCustomBufDataset.GetFieldData
|
|
// this test was created as reaction to AV bug found in TCustomBufDataset.GetFieldData
|
|
// when retrieving OldValue (State=dsOldValue) of newly inserted or appended record.
|
|
// when retrieving OldValue (State=dsOldValue) of newly inserted or appended record.
|
|
@@ -932,17 +932,19 @@ begin
|
|
// but next to it was restored back also original test.
|
|
// but next to it was restored back also original test.
|
|
// So now we have two tests which test same thing, where this 'old' one is subset of 'new' one
|
|
// So now we have two tests which test same thing, where this 'old' one is subset of 'new' one
|
|
// Ideal solution would be remove this 'old' test as it does not test anything what is not tested elsewhere ...
|
|
// Ideal solution would be remove this 'old' test as it does not test anything what is not tested elsewhere ...
|
|
- bufds := DBConnector.GetNDataset(0) as TDataset;
|
|
|
|
- bufds.Open;
|
|
|
|
- bufds.InsertRecord([0,'name']);
|
|
|
|
- v := VarToStr(bufds.fields[1].OldValue);
|
|
|
|
|
|
+ ds := DBConnector.GetNDataset(0) as TDataset;
|
|
|
|
+ ds.Open;
|
|
|
|
+ ds.InsertRecord([0,'name']);
|
|
|
|
+ v := VarToStr(ds.Fields[1].OldValue);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestCursorDBBasics.TestFieldOldValue;
|
|
procedure TTestCursorDBBasics.TestFieldOldValue;
|
|
-var OldValue: string;
|
|
|
|
|
|
+var ds: TDataSet;
|
|
|
|
+ OldValue: string;
|
|
Fmemo: TField;
|
|
Fmemo: TField;
|
|
begin
|
|
begin
|
|
- with DBConnector.GetFieldDataset as TCustomBufDataset do
|
|
|
|
|
|
+ ds := DBConnector.GetFieldDataset;
|
|
|
|
+ with ds do
|
|
begin;
|
|
begin;
|
|
Open;
|
|
Open;
|
|
First;
|
|
First;
|
|
@@ -979,9 +981,13 @@ begin
|
|
CheckEquals(OldValue, Fmemo.OldValue, 'Memo.OldValue before Post');
|
|
CheckEquals(OldValue, Fmemo.OldValue, 'Memo.OldValue before Post');
|
|
Post;
|
|
Post;
|
|
CheckEquals(OldValue, Fmemo.OldValue, 'Memo.OldValue after Post');
|
|
CheckEquals(OldValue, Fmemo.OldValue, 'Memo.OldValue after Post');
|
|
- MergeChangeLog;
|
|
|
|
- CheckEquals('Changed Memo value', Fmemo.OldValue, 'Memo.OldValue after MergeChangeLog');
|
|
|
|
end;
|
|
end;
|
|
|
|
+ if ds is TCustomBufDataset then
|
|
|
|
+ with ds as TCustomBufDataset do
|
|
|
|
+ begin
|
|
|
|
+ MergeChangeLog;
|
|
|
|
+ CheckEquals('Changed Memo value', Fmemo.OldValue, 'Memo.OldValue after MergeChangeLog');
|
|
|
|
+ end;
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestCursorDBBasics.TestChangeBlobFieldBeforePost;
|
|
procedure TTestCursorDBBasics.TestChangeBlobFieldBeforePost;
|
|
@@ -989,24 +995,34 @@ procedure TTestCursorDBBasics.TestChangeBlobFieldBeforePost;
|
|
// Bug 15376
|
|
// Bug 15376
|
|
// See also TTestFieldTypes.TestChangeBlob
|
|
// See also TTestFieldTypes.TestChangeBlob
|
|
var
|
|
var
|
|
- DS : TBufDataset;
|
|
|
|
|
|
+ Fmemo: TField;
|
|
begin
|
|
begin
|
|
- DS := TBufDataset.Create(nil);
|
|
|
|
- DS.FieldDefs.Add('ID',ftInteger);
|
|
|
|
- DS.FieldDefs.Add('NAME',ftString,50);
|
|
|
|
- DS.FIeldDefs.Add('MEMO1',ftMemo);
|
|
|
|
- DS.CreateDataset;
|
|
|
|
- DS.Open;
|
|
|
|
- with DS do
|
|
|
|
|
|
+ with DBConnector.GetFieldDataset do
|
|
begin
|
|
begin
|
|
|
|
+ Open;
|
|
Append;
|
|
Append;
|
|
- FieldByName('ID').AsInteger:=1;
|
|
|
|
- FieldByName('NAME').AsString:='NAME1';
|
|
|
|
- FieldByName('MEMO1').AsString:='NAME1';
|
|
|
|
- CheckEquals('NAME1',FieldByName('MEMO1').AsString,'Memo field must match before post');
|
|
|
|
|
|
+ Fmemo := FieldByName('FMEMO');
|
|
|
|
+ CheckTrue(Fmemo.IsNull, 'IsNull after Append');
|
|
|
|
+
|
|
|
|
+ Fmemo.AsString:='MEMO1';
|
|
|
|
+ CheckFalse(Fmemo.IsNull, 'IsNull after change');
|
|
|
|
+ CheckEquals('MEMO1', Fmemo.AsString);
|
|
|
|
+
|
|
|
|
+ Fmemo.Clear;
|
|
|
|
+ CheckTrue(Fmemo.IsNull, 'IsNull after Clear');
|
|
|
|
+
|
|
|
|
+ Fmemo.AsString:='MEMO2';
|
|
|
|
+ CheckEquals('MEMO2', Fmemo.AsString);
|
|
|
|
+
|
|
|
|
+ Fmemo.AsString:='';
|
|
|
|
+ CheckTrue(Fmemo.IsNull, 'IsNull');
|
|
|
|
+
|
|
|
|
+ Fmemo.AsString:='MEMO3';
|
|
|
|
+ CheckEquals('MEMO3', Fmemo.AsString);
|
|
Post;
|
|
Post;
|
|
|
|
+ CheckEquals('MEMO3', Fmemo.AsString);
|
|
|
|
+ Close;
|
|
end;
|
|
end;
|
|
- DS.Close;
|
|
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestDBBasics.TestSetFieldValues;
|
|
procedure TTestDBBasics.TestSetFieldValues;
|