Форум: "Начинающим";
Текущий архив: 2007.04.08;
Скачать: [xml.tar.bz2];
Внизфильтр не работает Найти похожие ветки
← →
Choco © (2007-03-15 11:56) [0]подскажите где у меня ошибка:
procedure TForm1.Edit1Change(Sender: TObject);
var s:string;
begin
s:="name=";
ADOTable1.Filtered:=false;
ADOTable1.Filter:=s+""""+Edit1.text+"*""";
ADOTable1.Filtered:=true;
if Edit1.Text="" then
ADOTable1.Filtered:=false;
end;
name - имя поля базы данных, в edit1.text ввожу первую букву
← →
Choco © (2007-03-15 16:41) [1]люди, подскажите, что не так??
← →
Плохиш © (2007-03-15 16:51) [2]
> подскажите где у меня ошибка:
Вот в этих строчках
> ADOTable1.Filter:=s+""""+Edit1.text+"*""";
> ADOTable1.Filtered:=true;
> if Edit1.Text="" then
> ADOTable1.Filtered:=false;
> люди, подскажите, что не так??
Отсутствие знаний и логики, или наоборот...
← →
Wood (2007-03-16 04:14) [3]Прошу прощения, но я хотел бы подключиться к теме этого вопроса. т.к. начал изучать ADO.
ADODataSet->ADOConnect->mdb
в ADODataSet commandtext "select * from country".
пробую динамическую фильтрацию при наборе в поле грида (текстовое значение):mTable.Filter:=DBG_sp.Columns.Items[1].FieldName+" = "+QuotedStr(se_str);
mTable.Filtered:=True; //mTable ->TADODataSet
Мало того, что в гриде сразу исчезают все значения, при вводе следующего символа, ругается, что уже eof и нечего искать. Пробовал менять Курсортип, не помогает.. Информация по работе с данным компонентом скудная :(
Может, при работе фильтра на самом деле работает запрос "select" ? Или плюнуть на фильтр и использовать "правильные" запросы?
Помогите, плз!
зы: погуглил, пояндексил, по..
← →
Wood (2007-03-16 07:11) [4]Вот попробовал с примером фильтрации по ID (числовое поле) - работает.
Какие заморочки бывают при работе с фильтром, что в [3] не получается?
← →
Choco © (2007-03-16 14:21) [5]wood, решил ли проблему?
← →
Wood (2007-03-16 15:57) [6]
> Choco © (16.03.07 14:21) [5]
пока нет
← →
Wood (2007-03-16 16:27) [7]так, выяснил, что фильтр по одной букве не фильтрует, при вводе целого слова фильтр работает. Значит надо like "%" или еще какие символы?
← →
Wood (2007-03-16 17:09) [8]очень странно...
Пробовал свой пример на отдельном проекте
вот так:ADODataSet1.Filter:="countnam Like ...
и edit1.text" и QuotedStr(Edit1.Text) и с символами и без них... нифига. Пока не сделал так:...
var s: string;
s:=QuotedStr(Edit1.Text+"%");
ADODataSet1.Filter:="countname Like " +s;
ADODataSet1.Filtered:=True;
ну, и почему так?
← →
stone © (2007-03-16 17:36) [9]
> Wood (16.03.07 17:09) [8]
ты вообще как LIKE работает знаешь?
← →
Плохиш © (2007-03-16 18:10) [10]
> stone © (16.03.07 17:36) [9]
Ты ещё спроси, а не прочитал ли он хотя бы одну книжку по тематике :-)
← →
Wood (2007-03-17 08:44) [11]
> Ты ещё спроси, а не прочитал ли он хотя бы одну книжку по
> тематике :-)
Понимаю, ув. Плохиш ©, что твой ник обязывает наезжать на "начинающих", но зачем в каждой теме повторять одно и тоже. Ведь ты прекрасно помнишь, что я недавно задал вопрос где найти информацию для изучения связки Delphi->mySQL, на что компетентные люди дали пару дельных советов найти литературу по ADO. и я читаю все, что найду. Я люблю читать. :)
У меня есть справка F1 и пара статей из сети по работе с ADO.
Начинал изучение работы с базами данных ч/з BDE (dbf, bd таблицы), юзал EDB, mySQL. Никогда небыло проблем с фильтрацией пока не взялся за mdb.
> ты вообще как LIKE работает знаешь?
я знаю, что я должен получить при запросе с like, используя символы "%"...
И там, где раньше проходило: <таблица>.Filter:= "field = "+QuotedStr(Edit1.Text);
совершенно не подошло для АDO.
Но больше всего меня удивило то, что не получилось
ADODataSet1.Filter:="countnam Like "+ QuotedStr(Edit1.Text+"%")
а пришлось присвоить строковой переменной тоже самое и заработало. Или это был глюк?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.04.08;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.039 c