mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-20 16:09:31 +02:00
* Fixed case-insensitive filtering on filters like *blah*
git-svn-id: trunk@21252 -
This commit is contained in:
parent
5b1b194b47
commit
a5bfcb026d
@ -1679,7 +1679,7 @@ begin
|
||||
str0 := AnsiStrUpper(Args[0]);
|
||||
str1 := AnsiStrUpper(Args[1]+1);
|
||||
setlength(str1, arg1len-2);
|
||||
match := AnsiPos(str0, str1) = 0;
|
||||
match := AnsiPos(str1, str0) <> 0;
|
||||
end else begin
|
||||
arg0len := StrLen(Args[0]);
|
||||
// at least length without asterisk
|
||||
|
@ -1132,15 +1132,60 @@ begin
|
||||
with DBConnector.GetNDataset(15) do
|
||||
begin
|
||||
Open;
|
||||
//FilterOptions := [foNoPartialCompare];
|
||||
//FilterOptions := [];
|
||||
Filter := '(name=''*Name3'')';
|
||||
Filter := '(name=''TestName3'')';
|
||||
Filtered := True;
|
||||
CheckFalse(EOF);
|
||||
CheckEquals(3,FieldByName('ID').asinteger);
|
||||
CheckEquals('TestName3',FieldByName('NAME').asstring);
|
||||
next;
|
||||
CheckTrue(EOF);
|
||||
|
||||
// Check partial compare
|
||||
Filter := '(name=''*Name5'')';
|
||||
CheckFalse(EOF);
|
||||
CheckEquals(5,FieldByName('ID').asinteger);
|
||||
CheckEquals('TestName5',FieldByName('NAME').asstring);
|
||||
next;
|
||||
CheckTrue(EOF);
|
||||
|
||||
// Check case-sensitivity
|
||||
Filter := '(name=''*name3'')';
|
||||
first;
|
||||
CheckTrue(EOF);
|
||||
|
||||
FilterOptions:=[foCaseInsensitive];
|
||||
Filter := '(name=''testname3'')';
|
||||
first;
|
||||
CheckFalse(EOF);
|
||||
CheckEquals(3,FieldByName('ID').asinteger);
|
||||
CheckEquals('TestName3',FieldByName('NAME').asstring);
|
||||
next;
|
||||
CheckTrue(EOF);
|
||||
|
||||
// Check case-insensitive partial compare
|
||||
Filter := '(name=''*name3'')';
|
||||
first;
|
||||
CheckFalse(EOF);
|
||||
CheckEquals(3,FieldByName('ID').asinteger);
|
||||
CheckEquals('TestName3',FieldByName('NAME').asstring);
|
||||
next;
|
||||
CheckTrue(EOF);
|
||||
|
||||
Filter := '(name=''*name*'')';
|
||||
first;
|
||||
CheckFalse(EOF);
|
||||
CheckEquals(1,FieldByName('ID').asinteger);
|
||||
CheckEquals('TestName1',FieldByName('NAME').asstring);
|
||||
next;
|
||||
CheckFalse(EOF);
|
||||
CheckEquals(2,FieldByName('ID').asinteger);
|
||||
CheckEquals('TestName2',FieldByName('NAME').asstring);
|
||||
|
||||
Filter := '(name=''*neme*'')';
|
||||
first;
|
||||
CheckTrue(EOF);
|
||||
|
||||
|
||||
Close;
|
||||
end;
|
||||
end;
|
||||
|
Loading…
Reference in New Issue
Block a user