Open Dedrasta opened 7 years ago
Ошибка подтверждена в парсере фильтра. Займусь когда будет время.
Еще один баг в парсере DBParsers.pas при UTF-8 кодировке и использовании не русских самволов по ним не работает фильтр, например вот такая фамилия "Шуғай Мейрам" не может быть отображена с помощью фильтра как не вводи, проблема в строке 540 Result:=VarAsType(Result[0], varString); заменить на Result:=VarAsType(Result[0], {$IFDEF D2009+}varUString{$ELSE}varString{$IFEND});
Проблема с фильтром обходится динамическим расширением массива Result Почему он так быстро растет не могу понять, но костыль такой:
523: while not VarIsEmpty(Arg1[Z]) do
524: begin
+++ if VarArrayHighBound(Result, 1) < i then
+++ VarArrayRedim(Result, i + i div 4);
525: Result[I] := Arg1[Z];
526: Inc(I); Inc(Z);
527: end;
Написал фильтр для датасета: filter := 'ID in (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)'; При включении фильтра получаю ошибку: Variant or safearray index out of bounds
в модуле FIBDataset
procedure TFIBCustomDataSet.RefreshClientFields(ForceCalc:boolean=True); ... b:=Bookmark; try Bookmark:=b; //здесь выдает ошибку
Но если в скобках оставить только 16 чисел:
filter := 'ID in (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)';
Delphi 10.1 Berlin
FibPlus 7.6 http://www.sql.ru/forum/955845-12/a-chto-proekt-devrace-fibplus-uzhe-umer