Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Фильтрация данных в локальных бд

2.1K
27 мая 2008 года
smoki
115 / / 05.11.2006
Здравствуйте уважаемые! Столкнулся с такой проблемой: есть компонент Table, пытаюсь отфильтровать данные через метод filter.
 
Код:
table1.filter:='Nazvanie="Апельсин"';
table1.filtered:=true;

Компиляция проходит нормально, а когда начинает выполнять эти строки кода, то вылетает ошибка, что нельзя использовать "" в фильтре, и как быть теперь не знаю, ведь nazvanie это поле, а Апельсин это одно из значений этого поля и написать Nazvanie=Апельсин, нельзя, что делать, как быть даже не знаю:confused:
8
27 мая 2008 года
mfender
3.5K / / 15.06.2005
В хэлпе очень подробно это описано, кстати. Используется одинарная кавычка и её же экранируется. Т.е., в твоём случае это будет выглядеть как table1.filter := 'Nazvanie = ''Апельсин''';
1.9K
28 мая 2008 года
Cool Xacker
148 / / 06.06.2006
Делай так:

 
Код:
var s:strings;
begin
s:=Edit2.Text; // в Edit1 пишем название продукта
Table1.Filtered:=false;
Table1.Filter:='Продукты='''+s+'''';
Table1.Filtered:=true;
end;


а чтобы отключить фильтрацию делай так:

 
Код:
Table1.Filtered:=false;
332
28 мая 2008 года
Valiant
416 / / 27.09.2004
незнаю как в Делфи, но в Билдере этот компонент
работает из рук вон плохо.
я при помощи запросов всё делаю
1.9K
28 мая 2008 года
Cool Xacker
148 / / 06.06.2006
Цитата: Valiant
незнаю как в Делфи, но в Билдере этот компонент
работает из рук вон плохо.
я при помощи запросов всё делаю



я постоянно работаю в Delphi и всё это без глюков работает

11
28 мая 2008 года
oxotnik333
2.9K / / 03.08.2007
Цитата: Valiant
незнаю как в Делфи, но в Билдере этот компонент
работает из рук вон плохо.
я при помощи запросов всё делаю



Ключевое слово "руки" :)

332
28 мая 2008 года
Valiant
416 / / 27.09.2004
:) сказал же что про Delphi не знаю не пишу на Паскале
:) не, ключевое слово всё-таки "плохо"
ибо странным образом две одинаковые таблицы (отличие в кол-ве записей)
в одной фильтр нормально работает во второй вообще не работает
я был в недоумении .... плюнул переделал при помощи Query как оказалось позднее избавил себя от лишней работы :)
1.9K
28 мая 2008 года
Cool Xacker
148 / / 06.06.2006
не спорю, с помощью запросов тоже возможно делать фильтрацию, но кто то может и не работать с запросами, вот поэтому существует ещё вариант (мною указанный выше)
11
28 мая 2008 года
oxotnik333
2.9K / / 03.08.2007
Цитата: Valiant
:) сказал же что про Delphi не знаю не пишу на Паскале



А билдер от дельфи ничем не отличается в данном случае кроме синтаксиса, библиотеки то одни и те же

6
28 мая 2008 года
George
4.1K / / 05.01.2007
Цитата: Valiant
:) сказал же что про Delphi не знаю не пишу на Паскале


Delphi нынче - это Delphi. А паскаль - это паскаль. Delphi, начиная с 7-ой версии считается языком программирования. При чём тут паскаль? ;)

Цитата:
А билдер от дельфи ничем не отличается в данном случае кроме синтаксиса, библиотеки то одни и те же


Так что всё же руки. Всегда у меня Table работал нормально.

8
29 мая 2008 года
mfender
3.5K / / 15.06.2005
Как верно было замечено выше, нужно оперировать SQL. TTable - весьма примитивная вещь. Оставьте её труженникам Бейсика. Испытайте на себе все прелести SQL, и будет тогда понимание процессов, которые происходят в любом DataSet'e. Ещё лучше - напейсать свой DataSet. Всмысле, попробовать напейсать. Кстати, Марко Кэнту очень широко этому вопросу уделил внимание. Читайте его.
6
29 мая 2008 года
George
4.1K / / 05.01.2007
Цитата: mfender
Испытайте на себе все прелести SQL, и будет тогда понимание процессов, которые происходят в любом DataSet'e..


Очень похоже на рекламу :)

5
29 мая 2008 года
hardcase
4.5K / / 09.08.2005
Цитата: Washington
Очень похоже на рекламу :)


Реклама хорошего стиля.

Не нужно относиться к реляционным БД, как к источникам каких-то табличных данных. Нужно воплощать модельный подход: БД должны быть источниками объектов.

332
29 мая 2008 года
Valiant
416 / / 27.09.2004
Цитата: Washington
Delphi нынче - это Delphi. А паскаль - это паскаль. Delphi, начиная с 7-ой версии считается языком программирования. При чём тут паскаль? ;)


Так что всё же руки. Всегда у меня Table работал нормально.


не смешите это Object Pascal

332
29 мая 2008 года
Valiant
416 / / 27.09.2004
Цитата: oxotnik333
А билдер от дельфи ничем не отличается в данном случае кроме синтаксиса, библиотеки то одни и те же



согласен!
напиши две одинакове программы на Билдере и на Делфи
увидишь что будет разница в размере файла!
И ты хочешь списать это на синтаксис???

11
29 мая 2008 года
oxotnik333
2.9K / / 03.08.2007
Цитата: Valiant
согласен!
напиши две одинакове программы на Билдере и на Делфи
увидишь что будет разница в размере файла!
И ты хочешь списать это на синтаксис???



Делфи не стоит...
У кого больше?

6
30 мая 2008 года
George
4.1K / / 05.01.2007
Цитата: Valiant
не смешите это Object Pascal


да что ж ты такое говоришь? и всё же я настою на своём: Delphi - это язык программирования начиная с 7-ой версии
"Object Pascal канул в лету..." (с)

332
30 мая 2008 года
Valiant
416 / / 27.09.2004
Цитата: Washington
да что ж ты такое говоришь? и всё же я настою на своём: Delphi - это язык программирования начиная с 7-ой версии
"Object Pascal канул в лету..." (с)


Ну вообщем без коментариев!

6
30 мая 2008 года
George
4.1K / / 05.01.2007
Delphi 1-6 - это Object Pascal, а Delphi 7 и выше - Delphi. И точка. И никаких комментариев.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог