|
@@ -116,7 +116,7 @@ type
|
|
|
|
|
|
TTestCursorDBBasics = class(TDBBasicsTestCase)
|
|
TTestCursorDBBasics = class(TDBBasicsTestCase)
|
|
private
|
|
private
|
|
- procedure TestOnFilterProc(DataSet: TDataSet; var Accept: Boolean);
|
|
|
|
|
|
+ procedure TestOnFilterProc(DataSet: TDataSet; var Accept: Boolean); // Filters out all records with even ID
|
|
procedure FTestDelete1(TestCancelUpdate : boolean);
|
|
procedure FTestDelete1(TestCancelUpdate : boolean);
|
|
procedure FTestDelete2(TestCancelUpdate : boolean);
|
|
procedure FTestDelete2(TestCancelUpdate : boolean);
|
|
published
|
|
published
|
|
@@ -136,9 +136,9 @@ type
|
|
procedure TestLocateCaseInsInts;
|
|
procedure TestLocateCaseInsInts;
|
|
|
|
|
|
procedure TestFirst;
|
|
procedure TestFirst;
|
|
- procedure TestIntFilter;
|
|
|
|
|
|
+ procedure TestIntFilter; //Integer range filter
|
|
procedure TestOnFilter;
|
|
procedure TestOnFilter;
|
|
- procedure TestStringFilter;
|
|
|
|
|
|
+ procedure TestStringFilter; //String filter expressions
|
|
|
|
|
|
procedure TestNullAtOpen;
|
|
procedure TestNullAtOpen;
|
|
|
|
|
|
@@ -1193,21 +1193,23 @@ begin
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestCursorDBBasics.TestOnFilterProc(DataSet: TDataSet; var Accept: Boolean);
|
|
procedure TTestCursorDBBasics.TestOnFilterProc(DataSet: TDataSet; var Accept: Boolean);
|
|
-
|
|
|
|
-var a : TDataSetState;
|
|
|
|
|
|
+var
|
|
|
|
+ a : TDataSetState;
|
|
begin
|
|
begin
|
|
Accept := odd(Dataset.FieldByName('ID').AsInteger);
|
|
Accept := odd(Dataset.FieldByName('ID').AsInteger);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestCursorDBBasics.TestOnFilter;
|
|
procedure TTestCursorDBBasics.TestOnFilter;
|
|
-var tel : byte;
|
|
|
|
|
|
+// Tests OnFilterRecord filtering
|
|
|
|
+var
|
|
|
|
+ Counter : byte;
|
|
begin
|
|
begin
|
|
with DBConnector.GetNDataset(15) do
|
|
with DBConnector.GetNDataset(15) do
|
|
begin
|
|
begin
|
|
OnFilterRecord := TestOnFilterProc;
|
|
OnFilterRecord := TestOnFilterProc;
|
|
Filtered := True;
|
|
Filtered := True;
|
|
Open;
|
|
Open;
|
|
- for tel := 1 to 8 do
|
|
|
|
|
|
+ for Counter := 1 to 8 do
|
|
begin
|
|
begin
|
|
CheckTrue(odd(FieldByName('ID').asinteger));
|
|
CheckTrue(odd(FieldByName('ID').asinteger));
|
|
next;
|
|
next;
|
|
@@ -1217,16 +1219,18 @@ begin
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestCursorDBBasics.TestIntFilter;
|
|
procedure TTestCursorDBBasics.TestIntFilter;
|
|
-var tel : byte;
|
|
|
|
|
|
+// Tests an integer range filter expression
|
|
|
|
+var
|
|
|
|
+ Counter : byte;
|
|
begin
|
|
begin
|
|
with DBConnector.GetNDataset(15) do
|
|
with DBConnector.GetNDataset(15) do
|
|
begin
|
|
begin
|
|
Filtered := True;
|
|
Filtered := True;
|
|
Filter := '(id>4) and (id<9)';
|
|
Filter := '(id>4) and (id<9)';
|
|
Open;
|
|
Open;
|
|
- for tel := 5 to 8 do
|
|
|
|
|
|
+ for Counter := 5 to 8 do
|
|
begin
|
|
begin
|
|
- CheckEquals(tel,FieldByName('ID').asinteger);
|
|
|
|
|
|
+ CheckEquals(Counter,FieldByName('ID').asinteger);
|
|
next;
|
|
next;
|
|
end;
|
|
end;
|
|
CheckTrue(EOF);
|
|
CheckTrue(EOF);
|
|
@@ -1261,11 +1265,14 @@ begin
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestCursorDBBasics.TestStringFilter;
|
|
procedure TTestCursorDBBasics.TestStringFilter;
|
|
-var tel : byte;
|
|
|
|
|
|
+// Tests a string expression filter
|
|
|
|
+var
|
|
|
|
+ Counter : byte;
|
|
begin
|
|
begin
|
|
with DBConnector.GetNDataset(15) do
|
|
with DBConnector.GetNDataset(15) do
|
|
begin
|
|
begin
|
|
Open;
|
|
Open;
|
|
|
|
+ // Check equality
|
|
Filter := '(name=''TestName3'')';
|
|
Filter := '(name=''TestName3'')';
|
|
Filtered := True;
|
|
Filtered := True;
|
|
CheckFalse(EOF);
|
|
CheckFalse(EOF);
|