![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Подскажите в чем ошибка?
Mariya © (2007-09-12 08:56:00)var strFilter: string;
begin
tbmain.Filter := '';
if Trim(Edit1.Text) <> '' then
begin
tbmain.Filter := 'Фамилия='+QuotedStr(Edit1.Text+'*');
strFilter :=tbmain.Filter;
tbmain.Filtered:=True;
end;
if Trim(Edit2.Text) <> '' then
begin
if (strFilter <> '') then tbmain.Filter:= strFilter +'Имя='+QuotedStr(Edit2.Text+'*');
end;
результат у меня должен быть виден на DBGrid1. Edit1-вводим фамилию, в Edit2-имя, фильтр по обоим полям не работает, выдает ошибку. Фильтр задан не правильно. Заранее спасибо.
clickmaker (2007-09-14 13:33:00) [21]
> sql:='Primechanie='+QuotedStr('*'+s+'*')
в Local SQL такое не сработает
см. [45]
Mariya (2007-09-14 13:21:00) [22]если я перейду на АДО я завалю форум своими вопросами! Я не знаю, что это такое вообще! Чтобы писать эскюэль запрос, я так понимаю нужно добавить SQL-TQuery, в свойстве в SQL написать сам запрос, а как это писать в самой кнопке?
s:=Edit5.Text;
if Trim(s) <> '' then
begin
sql:='Primechanie='+QuotedStr('*'+s+'*')
end;
Правильно я поняла?
sniknik (2007-09-14 13:08:00) [23]> и перейти на запросы
можно "перейти" на ADO, у него фильтр более гибкий, с LIKE, что почти условие запроса.
но лучше конечно перейти сразу: с парадокса на другую базу, с BDE на ADO (вернее от типа базы варианты), с навигационных методов на SQL, с зарплаты в 100$ на побольше и с работы где заставляют выполнять не свои задачи на соответствующую...
;)
clickmaker (2007-09-14 13:02:00) [24]
> как написать запрос?
TQuery.SQL.Text :=
'select * from Table where name like ' + QuotedStr('%' + Value + '%');
Mariya (2007-09-14 12:45:00) [25]'*' .....'*' я пробовала не правильно, первую '*' игнорирует. Подскажите как написать запрос? Буду ну О-О-Очень признательна!
Anatoly Podgoretsky (2007-09-14 10:44:00) [26]> Mariya (14.09.2007 10:27:41) [41]
А вот здесь придется отказаться от filter := и перейти на запросы
Сергей М. (2007-09-14 10:31:00) [27]... + 'ИмяПоля=' + QuotedStr( '*' +МодельПоискаВПоле + '*');
Mariya (2007-09-14 10:27:00) [28]Здравствуйте мастера! Я ЭТО СДЕЛАЛА!!! ПОИСК РАБОТАЕТ!!! По 10 полям!!!
Только осталось одно поле, где нужно написать контекстный поиск, ищет Ив* = Иванов, Ивасютин и т.д. А Мне нужно, чтобы звездочка еще и впереди читалась. Не подскажите? Как? Не зря я в арбузолитейном институте 10 лекции отслушала!!!
Сергей М. (2007-09-13 17:06:00) [29]Арбузолитейный, наверно, пыталась осилить)
Palladin (2007-09-13 17:05:00) [30]
> Mariya (13.09.07 16:49) [34]
а на кого ты училась то?
clickmaker (2007-09-13 16:59:00) [31]
> котрое я знаю из 10 пар лекций в институте!
10 пар недостаточно, чтобы узнать про массив?
Anatoly Podgoretsky (2007-09-13 16:53:00) [32]> Mariya (13.09.2007 16:36:30) [30]
И правильно сделаешь, неужели не найдешь зарплату хотя бы раза в три выше.
Anatoly Podgoretsky (2007-09-13 16:53:00) [33]> Сергей М. (13.09.2007 16:44:33) [33]
Какие требование при зарплате 100 баксов :-)
За что боролись, на то и на поролись.
Mariya (2007-09-13 16:51:00) [34]Всем огромное спасибо! Кто ПЫТАЛСЯ мне помочь!
Mariya (2007-09-13 16:49:00) [35]Передо мной стояли совершенно иные задачи, которые я могу позволить с грдостью сказать, я очень хорошо знаю!!!А сейчас понадобилось Дельфи, котрое я знаю из 10 пар лекций в институте!
Сергей М. (2007-09-13 16:44:00) [36]
> ИДУ УВОЛЬНЯТЬСЯ! МНЕ ЭТО ВСЕ НИ О ЧЕМ НЕ ГОВОРИТ
Просто интересно - а когда тебя принимали на работу, какие требования к тебе как к специалисту предъявляли ?
И чем с твоей стороны были подкреплены твои потенции в плане этих требований, коль скоро тебе было оказано (авансом ?) столь высокое доверие ?
Германн (2007-09-13 16:40:00) [37]
> Mariya (13.09.07 16:36) [30]
>
>
Четвертые сутки пылает граница :-)
http://www.delphimaster.ru/cgi-bin/forum.pl?n=18&search=Mariya
clickmaker (2007-09-13 16:39:00) [38]
> [30] Mariya (13.09.07 16:36)
а, ну тогда справочку почитай для начала или книжечку
задачка-то элементарная, чтоб сразу увольняться
то ли еще будет...
Mariya (2007-09-13 16:36:00) [39]
> Заведи массив имен полей
????
> Задай им Tag от 0 до количества полей в массиве - 1 соответственно
????!!!
Я ИДУ УВОЛЬНЯТЬСЯ! МНЕ ЭТО ВСЕ НИ О ЧЕМ НЕ ГОВОРИТ! ( :((( )
clickmaker (2007-09-13 16:28:00) [40]
> [26] Mariya (13.09.07 16:16)
даю подсказки. пока бесплатно
1. Заведи массив имен полей
2. Положи контролы для ввода значений на отдельную панель, если на форме есть другие, не участвующие в фильтре
3. Для даты лучше TDateTimePicker - юзеру удобней будет
4. Задай им Tag от 0 до количества полей в массиве - 1 соответственно
5. В цикле от 0 до ControlsCount-1 контейнера пробегись по контролам и, если это TEdit, то QuotedText + '*', если TComboBox, то просто текст (число), если TDateTimePicker, то строковый вид даты. Перед этим обнули strFilter и в цикле добавляй ИмяПоляИзМассива по Tag + '=' + собственно значение, НЕ забывая перед вставлять ' and ', если фильтр уже не пустой