Фильтр ClientDataSet с НЕ НРАВИТСЯ

При использовании свойства Filter набора ClientDataSet с фильтром

Имя НЕ КАК 'Пауло%'

говорит, что синтаксис неверен.

как я могу сделать обходной путь в фильтре?


person Paulo Alexandre Chaves Pinto    schedule 05.08.2013    source источник


Ответы (1)


Измените синтаксис фильтра на

  Clientdataset.Filter := 'NOT [Name]  LIKE ' +QuotedStr('Paulo%');
person bummi    schedule 05.08.2013
comment
свойство Filter всегда требует (скобки) фильтр работал с '(NOT (Name LIKE'%P')) 'спасибо за ответ. - person Paulo Alexandre Chaves Pinto; 06.08.2013
comment
с какой версией вам нужны скобки. Я тестировал с D7, DXE, DXE3 и: begin With Clientdataset1 do begin FieldDefs.Add('Name',ftString,100); Createdataset; Append; Fields[0].Value:='Test'; Append; Fields[0].Value:='Paulox'; Append; Fields[0].Value:='Pauloy'; Post; Filter := 'NOT [Name] LIKE ' +QuotedStr('Paulo%'); Filtered := true; end; end; - person bummi; 06.08.2013
comment
хорошо, моя ошибка была приравнена к SQL, отрицая команду LIKE WHERE Name NOT LIKE 'Paulo%' , но в SQL допустимы два способа WHERE NOT Name LIKE 'Paulo%' . Спасибо, ваш ответ правильный. - person Paulo Alexandre Chaves Pinto; 07.08.2013