mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-25 15:29:36 +02:00
Added test for fixedstring fields
* Added test for the update buffers when multiple records are deleted * Changed tests because for sqldb the datasets must have a primary key, with as result that the id-field is required. git-svn-id: trunk@12220 -
This commit is contained in:
parent
481148b1f6
commit
9f25b3e2ed
@ -85,6 +85,7 @@ type
|
|||||||
procedure TestSupportDateFields;
|
procedure TestSupportDateFields;
|
||||||
procedure TestSupportCurrencyFields;
|
procedure TestSupportCurrencyFields;
|
||||||
procedure TestSupportBCDFields;
|
procedure TestSupportBCDFields;
|
||||||
|
procedure TestSupportFixedStringFields;
|
||||||
|
|
||||||
procedure TestIsEmpty;
|
procedure TestIsEmpty;
|
||||||
procedure TestAppendOnEmptyDataset;
|
procedure TestAppendOnEmptyDataset;
|
||||||
@ -93,6 +94,7 @@ type
|
|||||||
procedure TestBufDatasetCancelUpd; //bug 6938
|
procedure TestBufDatasetCancelUpd; //bug 6938
|
||||||
procedure TestEofAfterFirst; //bug 7211
|
procedure TestEofAfterFirst; //bug 7211
|
||||||
procedure TestBufDatasetCancelUpd1;
|
procedure TestBufDatasetCancelUpd1;
|
||||||
|
procedure TestMultipleDeleteUpdateBuffer;
|
||||||
procedure TestDoubleClose;
|
procedure TestDoubleClose;
|
||||||
procedure TestCalculatedField;
|
procedure TestCalculatedField;
|
||||||
procedure TestAssignFieldftString;
|
procedure TestAssignFieldftString;
|
||||||
@ -123,7 +125,7 @@ type
|
|||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
uses toolsunit, bufdataset, variants;
|
uses toolsunit, bufdataset, variants, strutils;
|
||||||
|
|
||||||
type THackDataLink=class(TdataLink);
|
type THackDataLink=class(TdataLink);
|
||||||
|
|
||||||
@ -151,6 +153,7 @@ begin
|
|||||||
AssertTrue(eof);
|
AssertTrue(eof);
|
||||||
AssertTrue(bof);
|
AssertTrue(bof);
|
||||||
append;
|
append;
|
||||||
|
FieldByName('id').AsInteger:=0;
|
||||||
AssertFalse(Bof);
|
AssertFalse(Bof);
|
||||||
AssertTrue(Eof);
|
AssertTrue(Eof);
|
||||||
post;
|
post;
|
||||||
@ -169,6 +172,7 @@ begin
|
|||||||
AssertTrue(bof);
|
AssertTrue(bof);
|
||||||
AssertTrue(IsEmpty);
|
AssertTrue(IsEmpty);
|
||||||
insert;
|
insert;
|
||||||
|
FieldByName('id').AsInteger:=0;
|
||||||
AssertTrue(Bof);
|
AssertTrue(Bof);
|
||||||
AssertTrue(Eof);
|
AssertTrue(Eof);
|
||||||
AssertFalse(IsEmpty);
|
AssertFalse(IsEmpty);
|
||||||
@ -1804,6 +1808,24 @@ begin
|
|||||||
ds.close;
|
ds.close;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TTestDBBasics.TestSupportFixedStringFields;
|
||||||
|
var i : byte;
|
||||||
|
ds : TDataset;
|
||||||
|
Fld : TField;
|
||||||
|
|
||||||
|
begin
|
||||||
|
TestfieldDefinition(ftFixedChar,10,ds,Fld);
|
||||||
|
for i := 0 to testValuesCount-1 do
|
||||||
|
begin
|
||||||
|
if Fld.IsNull then // If the field is null, .AsString always returns an empty, non-padded string
|
||||||
|
AssertEquals(testStringValues[i],Fld.AsString)
|
||||||
|
else
|
||||||
|
AssertEquals(PadRight(testStringValues[i],10),Fld.AsString);
|
||||||
|
ds.Next;
|
||||||
|
end;
|
||||||
|
ds.close;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TTestDBBasics.TestDoubleClose;
|
procedure TTestDBBasics.TestDoubleClose;
|
||||||
begin
|
begin
|
||||||
with DBConnector.GetNDataset(1) do
|
with DBConnector.GetNDataset(1) do
|
||||||
@ -1994,6 +2016,32 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TTestDBBasics.TestMultipleDeleteUpdateBuffer;
|
||||||
|
var ds : TDataset;
|
||||||
|
begin
|
||||||
|
ds := DBConnector.GetNDataset(true,5);
|
||||||
|
if not (ds is TBufDataset) then
|
||||||
|
Ignore('This test only applies to TBufDataset and descendents.');
|
||||||
|
|
||||||
|
ds.open;
|
||||||
|
with TBufDataset(ds) do
|
||||||
|
begin
|
||||||
|
AssertEquals(0,ChangeCount);
|
||||||
|
edit;
|
||||||
|
fieldbyname('id').asinteger := 500;
|
||||||
|
fieldbyname('name').AsString := 'JoJo';
|
||||||
|
post;
|
||||||
|
AssertEquals(1,ChangeCount);
|
||||||
|
next; next;
|
||||||
|
Delete;
|
||||||
|
AssertEquals(2,ChangeCount);
|
||||||
|
Delete;
|
||||||
|
AssertEquals(3,ChangeCount);
|
||||||
|
CancelUpdates;
|
||||||
|
end;
|
||||||
|
ds.close;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TTestDBBasics.TestNullAtOpen;
|
procedure TTestDBBasics.TestNullAtOpen;
|
||||||
begin
|
begin
|
||||||
with dbconnector.getndataset(0) do
|
with dbconnector.getndataset(0) do
|
||||||
|
Loading…
Reference in New Issue
Block a user