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

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

Filter не делается по значениям с пробелом... [D6, dBase, FoxPro]


CraKer ©   (2003-12-14 00:03:00) 

У меня в базе заданы ячейки с пробелами,
тоесть заданные величины не являются целостными словами,
а дельфи(6ой) не хочет фильтровать по величинам с пробелами,
говорит что ячейка не найдена, даже если указать частичный
поиск, какаой есть способ этого избежать,
что я сделал не так, и есть ли такая фигня в sql...


sniknik   (2003-12-15 11:20:00) [1]

CraKer (15.12.03 11:13) [17]
ты все неправильно понял, событие onFilterRecord вместо фильтрации (т.е. его сам руками делаеш), а не вместе с фильтром, тем более фильтр в нем задавать.

проверь так
procedure TForm1.Table1FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
Accept:= true; //а после с false
end;
сразу поймеш зачем оно.


Плохиш_   (2003-12-15 11:16:00) [2]

>CraKer (15.12.03 11:13) [17]

Ты бы хоть F1 нажал на OnFilterRecord да почитал бы немного, там даже пример использования есть.
А то с такими знаниями далеко не уедешь.


Sandman25   (2003-12-15 11:16:00) [3]

[17] CraKer (15.12.03 11:13)

Хватит программировать! Срочно начать чтение книг.


CraKer   (2003-12-15 11:13:00) [4]

Если поместить
procedure TForm1.Table1FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
var
a:string;
begin
a:="my value";
table1.Filtered := true;
table1.Filter := "Column ="+ quotedstr(a);
end;

в onfilterrecord то при компиле выпадает "Project1.exe faulted
with message: acces violation at 0x4de3b11:read of adress итд"
Если поместить код в онклик, то прицелом значении, без (*) он
фильтрует исправно, но если задать "my valu*" то ничего не
находит, просто пустой грид......

to BlackKing

Вроде я уже так пытался, но попробую еще...


Плохиш_   (2003-12-15 11:07:00) [5]

Интересно Filter LIKE поддерживает?


BlackKing   (2003-12-15 10:55:00) [6]

Heh...opozdal"...otvet uzhe dali :o)


BlackKing   (2003-12-15 10:54:00) [7]

table1.Filter := "Column ="+#39+a+#39;
jesli pole strokovoje, to bez kavichek nikak nizja


Anatoly Podgoretsky   (2003-12-15 10:03:00) [8]

CraKer (15.12.03 02:04) [11]
Проходит, ты наверно опять что то не так сделал и молчишь.


Silver Alex   (2003-12-15 10:02:00) [9]


> А какже реализовать поис по части слова "my val*"

можно попробовать на DataSet.OnFilterRecord


CraKer   (2003-12-15 02:04:00) [10]

Хм.... А какже реализовать поис по части слова "my val*"
не проходит.... :(


CraKer   (2003-12-15 01:35:00) [11]

Большое человеческое спасибо!


Anatoly Podgoretsky   (2003-12-15 01:02:00) [12]

sniknik © (15.12.03 00:43) [7]
А ведь могло быть сразу.
Образцово показательные учения.


sniknik   (2003-12-15 00:45:00) [13]

CraKer (15.12.03 00:36) [6]
а разве неясно?
можно так
table1.Filter := "Column ="+AnsiQuotedStr(a);


sniknik   (2003-12-15 00:43:00) [14]

почти сутки без решения и всего 10мин после полного освешения (кода). ;о))) показательно.

еще пара (неправильных :) вариантов
a:= #39"my value"#39;
a:= """my value""";


CraKer   (2003-12-15 00:36:00) [15]

Хорошо, а можно в контексте представленной программы????
Тоесть тыкните меня носом в место куда это нужно поместить, просто с операцией не знаком....


Плохиш_   (2003-12-14 22:47:00) [16]

QuotedStr(a)


Anatoly Podgoretsky   (2003-12-14 22:46:00) [17]

AnsiQuotedStr


CraKer   (2003-12-14 22:36:00) [18]

Суть проблеммы:
Я задаю операцию фильтра следующим образом:

procedure TForm1.Button1Click(Sender: TObject);
var
a:string;
begin
a:="my value" ;
table1.Filtered := true;
table1.Filter := "Column ="+a;
end;


Таким образом он должен фильтровать все зна чения
с именем "my value", но не делает этого, а
в ошибке пишет "Field by name my not found" примерно
так, а если переменную "a"задать как целое число
например оно у меня в таблице есть, то он фильтрует
. Операция не проходит даже если указать "m*"
тогда в ошибке просто "Field by name m not found"
Что мне делать?


JibSkeart   (2003-12-14 11:05:00) [19]

ты лутьше покажи пример как все это выглядит
иначе мы эту фигню что то не понимаем :)


Наталия   (2003-12-14 07:51:00) [20]

Неужели так и говорит: "Ячейка не найдена"? :))
Приведи свой код, который ты применяешь для фильтрации.
В SQL много чего есть, может быть даже и "такая фигня", смотря что ты под этим подразумеваешь...


Наверх

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