|
@@ -1383,8 +1383,12 @@ begin
|
|
|
ds.close;
|
|
|
|
|
|
LoadDs := TCustomBufDataset.Create(nil);
|
|
|
- LoadDs.LoadFromFile('test.xml');
|
|
|
- FTestXMLDatasetDefinition(LoadDS);
|
|
|
+ try
|
|
|
+ LoadDs.LoadFromFile('test.xml');
|
|
|
+ FTestXMLDatasetDefinition(LoadDS);
|
|
|
+ finally
|
|
|
+ LoadDS.free;
|
|
|
+ end;
|
|
|
end;
|
|
|
|
|
|
procedure TTestBufDatasetDBBasics.TestFileNameProperty;
|
|
@@ -1414,26 +1418,31 @@ var ds : TCustomBufDataset;
|
|
|
i : integer;
|
|
|
begin
|
|
|
ds := TCustomBufDataset.Create(nil);
|
|
|
- DS.FieldDefs.Add('ID',ftInteger);
|
|
|
- DS.FieldDefs.Add('NAME',ftString,50);
|
|
|
- DS.CreateDataset;
|
|
|
- DS.Open;
|
|
|
- for i := 1 to 10 do
|
|
|
- begin
|
|
|
- ds.Append;
|
|
|
- ds.FieldByName('ID').AsInteger := i;
|
|
|
- ds.FieldByName('NAME').AsString := 'TestName' + inttostr(i);
|
|
|
- DS.Post;
|
|
|
- end;
|
|
|
- ds.first;
|
|
|
- for i := 1 to 10 do
|
|
|
- begin
|
|
|
- CheckEquals(i,ds.fieldbyname('ID').asinteger);
|
|
|
- CheckEquals('TestName' + inttostr(i),ds.fieldbyname('NAME').AsString);
|
|
|
- ds.next;
|
|
|
- end;
|
|
|
- CheckTrue(ds.EOF);
|
|
|
- DS.Close;
|
|
|
+ try
|
|
|
+ DS.FieldDefs.Add('ID',ftInteger);
|
|
|
+ DS.FieldDefs.Add('NAME',ftString,50);
|
|
|
+ DS.CreateDataset;
|
|
|
+ DS.Open;
|
|
|
+ for i := 1 to 10 do
|
|
|
+ begin
|
|
|
+ ds.Append;
|
|
|
+ ds.FieldByName('ID').AsInteger := i;
|
|
|
+ ds.FieldByName('NAME').AsString := 'TestName' + inttostr(i);
|
|
|
+ DS.Post;
|
|
|
+ end;
|
|
|
+ ds.first;
|
|
|
+ for i := 1 to 10 do
|
|
|
+ begin
|
|
|
+ CheckEquals(i,ds.fieldbyname('ID').asinteger);
|
|
|
+ CheckEquals('TestName' + inttostr(i),ds.fieldbyname('NAME').AsString);
|
|
|
+ ds.next;
|
|
|
+ end;
|
|
|
+ CheckTrue(ds.EOF);
|
|
|
+ DS.Close;
|
|
|
+
|
|
|
+ finally
|
|
|
+ ds.Free;
|
|
|
+ end;
|
|
|
end;
|
|
|
|
|
|
procedure TTestBufDatasetDBBasics.TestBufDatasetCancelUpd;
|
|
@@ -1580,10 +1589,20 @@ begin
|
|
|
checkequals(fields[0].OldValue,i);
|
|
|
checkequals(fields[1].OldValue,s);
|
|
|
CheckEquals(ChangeCount,1);
|
|
|
+ Next;
|
|
|
+ Edit;
|
|
|
+ i := fields[0].AsInteger;
|
|
|
+ s := fields[1].AsString;
|
|
|
+ fields[0].AsInteger:=23;
|
|
|
+ fields[1].AsString:='hanged';
|
|
|
+ Post;
|
|
|
+ checkequals(fields[0].OldValue,i);
|
|
|
+ checkequals(fields[1].OldValue,s);
|
|
|
+ CheckEquals(ChangeCount,2);
|
|
|
MergeChangeLog;
|
|
|
CheckEquals(ChangeCount,0);
|
|
|
- checkequals(fields[0].OldValue,64);
|
|
|
- checkequals(fields[1].OldValue,'Changed');
|
|
|
+ checkequals(fields[0].OldValue,23);
|
|
|
+ checkequals(fields[1].OldValue,'hanged');
|
|
|
end;
|
|
|
end;
|
|
|
|
|
@@ -1716,6 +1735,7 @@ begin
|
|
|
AFieldType:=ftString;
|
|
|
AddIndex('testindex','F'+FieldTypeNames[AfieldType],[]);
|
|
|
FList := TStringList.Create;
|
|
|
+ try
|
|
|
FList.Sorted:=true;
|
|
|
FList.CaseSensitive:=True;
|
|
|
FList.Duplicates:=dupAccept;
|
|
@@ -1744,6 +1764,9 @@ begin
|
|
|
CheckEquals(flist[i],FieldByName('F'+FieldTypeNames[AfieldType]).AsString);
|
|
|
Prior;
|
|
|
end;
|
|
|
+ finally
|
|
|
+ flist.free;
|
|
|
+ end;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
@@ -1760,34 +1783,38 @@ begin
|
|
|
AFieldType:=ftString;
|
|
|
AddIndex('testindex','F'+FieldTypeNames[AfieldType],[],'F'+FieldTypeNames[AfieldType]);
|
|
|
FList := TStringList.Create;
|
|
|
- FList.Sorted:=true;
|
|
|
- FList.CaseSensitive:=True;
|
|
|
- FList.Duplicates:=dupAccept;
|
|
|
- open;
|
|
|
+ try
|
|
|
+ FList.Sorted:=true;
|
|
|
+ FList.CaseSensitive:=True;
|
|
|
+ FList.Duplicates:=dupAccept;
|
|
|
+ open;
|
|
|
|
|
|
- while not eof do
|
|
|
- begin
|
|
|
- flist.Add(FieldByName('F'+FieldTypeNames[AfieldType]).AsString);
|
|
|
- Next;
|
|
|
- end;
|
|
|
+ while not eof do
|
|
|
+ begin
|
|
|
+ flist.Add(FieldByName('F'+FieldTypeNames[AfieldType]).AsString);
|
|
|
+ Next;
|
|
|
+ end;
|
|
|
|
|
|
- IndexName:='testindex';
|
|
|
- first;
|
|
|
- i:=FList.Count-1;
|
|
|
+ IndexName:='testindex';
|
|
|
+ first;
|
|
|
+ i:=FList.Count-1;
|
|
|
|
|
|
- while not eof do
|
|
|
- begin
|
|
|
- CheckEquals(flist[i],FieldByName('F'+FieldTypeNames[AfieldType]).AsString);
|
|
|
- dec(i);
|
|
|
- Next;
|
|
|
- end;
|
|
|
+ while not eof do
|
|
|
+ begin
|
|
|
+ CheckEquals(flist[i],FieldByName('F'+FieldTypeNames[AfieldType]).AsString);
|
|
|
+ dec(i);
|
|
|
+ Next;
|
|
|
+ end;
|
|
|
|
|
|
- while not bof do
|
|
|
- begin
|
|
|
- inc(i);
|
|
|
- CheckEquals(flist[i],FieldByName('F'+FieldTypeNames[AfieldType]).AsString);
|
|
|
- Prior;
|
|
|
- end;
|
|
|
+ while not bof do
|
|
|
+ begin
|
|
|
+ inc(i);
|
|
|
+ CheckEquals(flist[i],FieldByName('F'+FieldTypeNames[AfieldType]).AsString);
|
|
|
+ Prior;
|
|
|
+ end;
|
|
|
+ finally
|
|
|
+ flist.free;
|
|
|
+ end;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
@@ -1804,33 +1831,37 @@ begin
|
|
|
AFieldType:=ftString;
|
|
|
AddIndex('testindex','F'+FieldTypeNames[AfieldType],[],'','F'+FieldTypeNames[AfieldType]);
|
|
|
FList := TStringList.Create;
|
|
|
- FList.Sorted:=true;
|
|
|
- FList.Duplicates:=dupAccept;
|
|
|
- open;
|
|
|
+ try
|
|
|
+ FList.Sorted:=true;
|
|
|
+ FList.Duplicates:=dupAccept;
|
|
|
+ open;
|
|
|
|
|
|
- while not eof do
|
|
|
- begin
|
|
|
- flist.Add(FieldByName('F'+FieldTypeNames[AfieldType]).AsString);
|
|
|
- Next;
|
|
|
- end;
|
|
|
+ while not eof do
|
|
|
+ begin
|
|
|
+ flist.Add(FieldByName('F'+FieldTypeNames[AfieldType]).AsString);
|
|
|
+ Next;
|
|
|
+ end;
|
|
|
|
|
|
- IndexName:='testindex';
|
|
|
- first;
|
|
|
- i:=0;
|
|
|
+ IndexName:='testindex';
|
|
|
+ first;
|
|
|
+ i:=0;
|
|
|
|
|
|
- while not eof do
|
|
|
- begin
|
|
|
- CheckEquals(flist[i],FieldByName('F'+FieldTypeNames[AfieldType]).AsString);
|
|
|
- inc(i);
|
|
|
- Next;
|
|
|
- end;
|
|
|
+ while not eof do
|
|
|
+ begin
|
|
|
+ CheckEquals(flist[i],FieldByName('F'+FieldTypeNames[AfieldType]).AsString);
|
|
|
+ inc(i);
|
|
|
+ Next;
|
|
|
+ end;
|
|
|
|
|
|
- while not bof do
|
|
|
- begin
|
|
|
- dec(i);
|
|
|
- CheckEquals(flist[i],FieldByName('F'+FieldTypeNames[AfieldType]).AsString);
|
|
|
- Prior;
|
|
|
- end;
|
|
|
+ while not bof do
|
|
|
+ begin
|
|
|
+ dec(i);
|
|
|
+ CheckEquals(flist[i],FieldByName('F'+FieldTypeNames[AfieldType]).AsString);
|
|
|
+ Prior;
|
|
|
+ end;
|
|
|
+ finally
|
|
|
+ FList.Free;
|
|
|
+ end;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
@@ -1915,6 +1946,7 @@ begin
|
|
|
begin
|
|
|
AFieldType:=ftString;
|
|
|
FList := TStringList.Create;
|
|
|
+ try
|
|
|
FList.Sorted:=true;
|
|
|
FList.CaseSensitive:=True;
|
|
|
FList.Duplicates:=dupAccept;
|
|
@@ -1971,6 +2003,9 @@ begin
|
|
|
end;
|
|
|
|
|
|
CheckEquals('',IndexFieldNames);
|
|
|
+ finally
|
|
|
+ flist.free;
|
|
|
+ end;
|
|
|
|
|
|
end;
|
|
|
end;
|