Показать сообщение отдельно
Старый 10.08.2009, 11:45   #5
Vasuha
Постоялец
 
Пол:Мужской
Регистрация: 13.03.2008
Адрес: Минск
Сообщений: 257
Репутация: 231
По умолчанию Re: Как проверить запись в ClientDataSet?

Вчера столкнулся, с данной проблемой. Но конкретно в TMemTableEh. Так как никогда не пользовался этими компонентами долго не мог понять почему не работает Lookup и т.д., пока не пошел дебаггером. Как выяснилось с поиском русских букв проблемы. В нете ничего по решению данной проблемы не нашел. И не придумал ничего умного, как в код MemTableEh внести изменения. Изменения выделены красным.(поля типа ftWideString у меня)

Код:
 function CompareField(Field: TField; Value: Variant): Boolean;
  var
    S: string;
  begin
    if (Field.DataType = ftString) or (Field.DataType = ftWideString) then
    begin
      S := Field.AsString;
      if (loPartialKey in Options) then
{$IFDEF CIL}
    Borland.Delphi.System.Delete(S, Length(Value) + 1, MaxInt);
{$ELSE}
    System.Delete(S, Length(Value) + 1, MaxInt);
{$ENDIF}
      if (loCaseInsensitive in Options) then
        Result := AnsiCompareText(S, Value) = 0
      else
        Result := AnsiCompareStr(S, Value) = 0;
    end
    else
      Result := VarEquals(Field.Value, Value);
  end;
Прокомментируйте пожалуйста кто сталкивался или может есть предложения по решению данной проблемы?
__________________
Vasuha вне форума
 
Ответить с цитированием Вверх
 
Время генерации страницы 0.02015 секунды с 10 запросами