![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ошибка при установке фильтра в ADO таблице [D7, MsAccess]
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]
Ты хоть сообщение об ошибке приведи, и реальный кусок кода, а то телепатов здесь маловато.
И вообще-то в хелпе есть пример.