Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите обратиться к параметрам FilterOptions


Новичок ©   (2009-04-12 19:32:00) 

В одной книжке нашёл описание свойств TADOTable, есть такое свойство как FilterOptions и у него несколько параметров: FoCaseInsensitive, foNoPartialCompare и другие. Но в инспекторе объектов компонента ADOTable я не вижу этого совойства. Пробую обращаться к нему так: DataModule1.OborTable.FilterOptions[FoCaseInsensitive]:=true; но мне пишет что не известный идентификатор FoCaseInsensitive. Подскажите пожалуйста, как можно к нему обратиться?


Юрий Зотов   (2009-04-13 01:57:00) [1]

> Новичок   (12.04.09 23:21) [14]
> нашёл вот такую функцию для перевода из верхнего регистра в нижний:
> function LowerCase(s: string): string;

Могут возникнуть проблемы. Используйте AnsiLowerCase. Детали - в справке.


Германн   (2009-04-13 01:07:00) [2]


> sniknik ©   (12.04.09 21:35) [11]
>
> p.s. репетитор тебе нужен не из-за того что хреново перевел

А это не сам автор перевёл :)


Новичок   (2009-04-12 23:21:00) [3]

всё я сделал, нашёл вот такую функцию для перевода из верхнего регистра в нижний:
function LowerCase(s: string): string;
var
 i: integer;
begin
 result := s;
 for i := 1 to length(result) do
   if (result[i] in ['A'..'Z', 'À'..'ß']) then
     result[i] := chr(ord(result[i]) + 32);
end;

перевожу все сравниваемые поля и теперь на регистр не ругается, можно ХоТь ВОт ТАк наПИсаТь :)


sniknik   (2009-04-12 22:48:00) [4]

> Да, понял почему регистр учитывается, как раз в событии OnFilterRecord
не до конца понял... Filter и OnFilterRecord взаимоисключающие, т.к. для одного и того же, ты либо даешь делать это обьекту либо делаешь сам.
а у тебя получается ты делаешь сам, но "обвиняешь" объект что он фильтрует не так.


Новичок   (2009-04-12 21:54:00) [5]


> докажи.
> на чем основывался в выводах?

Проверил на практике.
Есть база созданная в MS Access 2003, подключена к Delphi 7 с помощью провайдера Microsoft Jet 4.0 OLE DB Provider, поставил нужные компоненты для отображения данных, а также Edit для фильтрации данных, по эдиту написано:
if Length(OborFilterName.Text)>0 then
DataModule1.OborTable.Filtered:=true
else
DataModule1.OborTable.Filtered:=false;

DataModule1.OborTable.Filter:='Наименование>='+QuotedStr(OborFilterName.Text);

У компонента ADOTable в событии OnFilterRecord написал следующее:
Accept:=false;
if copy(OborTableDSDesigner2.AsString,1,Length(SchoolForm.OborFilterName.Text))=
SchoolForm.OborFilterName.Text then
Accept:=true;
для проверки фильтра...

Да, понял почему регистр учитывается, как раз в событии OnFilterRecord, полезно подоказывать :)
Как можно весь текст привести к одному регистру, например к маленькому, какой функцией?


sniknik   (2009-04-12 21:35:00) [6]

p.s. репетитор тебе нужен не из-за того что хреново перевел, хотя это само  собой, а из-за того что есть сомнения в полученном смысле.


sniknik   (2009-04-12 21:32:00) [7]

>> а разве она чувствительна?
> да, она чувствительна.
докажи.
на чем основывался в выводах?

... [6]
найми репетитора по английскому...
кстати не шучу. когда то я пошел на курсы  английского, когда понял, что за профессию выбрал. (и это еще что, тут могут еще про 10-км  в гору в метель, рассказать. ;о)  )


Сергей М.   (2009-04-12 21:15:00) [8]


> тебе не понять


Куда нам .. в лаптях то) ..


Новичок   (2009-04-12 21:12:00) [9]


> Что за ахинея ?

тебе не понять


Сергей М.   (2009-04-12 21:05:00) [10]


>  [6]


Что за ахинея ?


Новичок   (2009-04-12 20:40:00) [11]


> переведи и попробуй понять, что тебе сообщают.

Проект School.exe поднял класс исключения EDatabaseError с сообщение 'FilterOptions - не поддерживаемый' остановленный Процесс. Используйте Шаг или Бегите для продолжения
И что это значит, что мой делфи не поддерживает данное свойство или что?


Новичок   (2009-04-12 20:38:00) [12]


> а разве она чувствительна?

да, она чувствительна.


sniknik   (2009-04-12 20:33:00) [13]

> чтобы фильтрация была нечувствительна к регистру
а разве она чувствительна?

> А мне выжаёт ту ошибку...
переведи и попробуй понять, что тебе сообщают.


Новичок   (2009-04-12 20:30:00) [14]

я же написал мне нужно параметры изменить, сделать, чтобы фильтрация была нечувствительна к регистру (нужно установить параметр FoCaseInsensitive). А мне выжаёт ту ошибку...


Сергей М.   (2009-04-12 20:03:00) [15]


> есть такое свойство как FilterOptions


> Пробую обращаться к нему


Зачем ?
Из студенческого любопытства ?
Ты чегохотел от этого свойства ?


Новичок   (2009-04-12 19:45:00) [16]

Разобрался как можно сделать:
DataModule1.OborTable.FilterOptions:=[FoCaseInsensitive]; при подключенном модуле DB

но теперь при нажатии на кнопку, где эта строчка мне выдаёт следующую ошибку: Project School.exe raised exception class EDatabaseError with message 'FilterOptions are not supported' Process stopped. Use Step or Run to continue. В чём проблема? Как это исправить?


Наверх

Титульная страница Поиск, карта сайта Написать письмо