Icon View Incident Report

Serious Serious
Reported By: Michael Vogel
Reported On: 12/10/2004
For: Version 4.15 Build 1
# 1923 Un-Optimized Case-Insensitive Filters Incorrectly Cause a Partial Match

If we filter for a String like A1234 suddenly not only the datasets with A1234 are displayed but also the datasets with A1234XXX are displayed. foNoPartialCompare is set to False in our tables because we do not use the asterix (*).

  with tblMedikamente do
  begin
    FilterOptions := [foCaseInsensitive];
    Filter := Format('(Gesperrt <> True) AND (Artikelnummer = %s)', [QuotedStr('Z21')]);
    Filtered := True;
  end;



Comments Comments and Workarounds
The workaround is to use the UPPER() function instead of the foCaseInsensitive filter option. Please note that it is also possible for an optimized condition to be considered un-optimized by the DBISAM optimizer due to being connnected with an AND operator to a more selective optimized condition. The above is an example of this.


Resolution Resolution
Fixed Problem on 12/12/2004 in version 4.16 build 1
Image