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

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

ошибка при установке фильтра в ADO таблице [D7, MsAccess]


Страницы:   1 2 3

Davinchi ©   (2003-11-04 13:14:00) 

Помогите разобраться вчем проблема, я хочу отфильтровать поле по определенным значениям и делаю это следуюшим образом:

AdoDataSet.Filter:="xxx";
AdoDataSet.Filtered:=True;

Раньше никогда не работал с АДОшными тэйбалами, поэтому даже приблизительно не знаю как отфильтровать нужное мне поле по нужному мне значению.

Заранее всем благодарен за любую информацию.


bon   (2003-11-04 15:43:00) [41]

А поле MyField какого типа?


Davinchi   (2003-11-04 15:40:00) [42]

попробуй написать так
ADODataSet1.Filtered := False;
ADODataSet1.Filter := "MyField = " + QuotedStr("MyFilter");
ADODataSet1.Filtered := True;

Попробовал, не прокатило, та же лабуда если MyFilter состоит из букв...


bon   (2003-11-04 15:38:00) [43]

попробуй написать так
ADODataSet1.Filtered := False;
ADODataSet1.Filter := "MyField = " + QuotedStr("MyFilter");
ADODataSet1.Filtered := True;


Stas   (2003-11-04 15:36:00) [44]

Используй WHERE


Davinchi   (2003-11-04 15:34:00) [45]

Попробовал написать так:

with ADODataSet1 do
begin
Filtered := False;
Filter := "MyField = " + QuotedStr("MyFilter");
Filtered := True;
end;

Был сильно удивлен - если MyFilter - только числа, например "123", то все работает нормально, если MyFilter - буквы - "xxx", то возникает ошибка: "BOF or EOF имеет значение True либо текущая запись удалена. Для выполнения операции необходимма текущая запись.", а я никакиз операций с удалением не делаю вообще...


Davinchi   (2003-11-04 14:00:00) [46]

Реальное сообщение привести не могу, т.к. времено нахожусь не на своем рабочем месте и не имею возможности запустить проект. Реально в фильтре указываю только то заначение тех записей, у которых в первом из трех полей оно присудствуем, и мне необходимо видеть только эти записи...

Эту хелпу я видел но немогу до конца разобраться что написано в строке фильтра - в ее формате...
"State="- я так понимаю это поле, "or" там т.к. используется два значения для отбора, а что такое QuotedStr("CA") я так и не разобрался. У мня есть предположение что я вообще не в том напровлении, что надо использовать TQuery и делать SQL запрос...


Zacho   (2003-11-04 13:45:00) [47]

Приводи не смысл, а точное сообщение об ошибке в оригинале. И кусок кода, по крайней мере реальное значение фильтра.
В крм хелпе ? Естественно в Дельфийском. А вот тебе и выдержка оттуда, если уж самому лень нажать F1:

The following runtime example shows how to assign that filter expression to the Filter property and activate the filtering.

with ADODataSet1 do begin

Filtered := False;
Filter := "State = " + QuotedStr("CA") + " OR " +
"State = " + QuotedStr("CA");
Filtered := True;

end;


Davinchi   (2003-11-04 13:40:00) [48]

Гдк в какой хелпе???? А смысел ошибки в переводе с англиской ругни: Неверная строка фильтра или ее формат...


Zacho   (2003-11-04 13:35:00) [49]

Ты хоть сообщение об ошибке приведи, и реальный кусок кода, а то телепатов здесь маловато.
И вообще-то в хелпе есть пример.


Страницы:   1 2 3

Наверх

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