![]() |
|
![]() ![]() ![]() |
|
youriy86 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 28.1.2011 Репутация: нет Всего: нет |
Всем привет!
У меня следующая проблема: Использую ZEOS + MySQL. Хочу выводить записи соответствующие некоторому условию (делаю поиск). Устанавливаю в поле Filter следующее значение:
Отображаются все нужные мне записи и еще те записи, у которых длина = 1. Подскажите плиз, в чем особенность оператора '*' и как его правильно использовать для фильтра, либо какой другой? Как ни странно, но % не работает - вообще ничего не выдает. |
|||
|
||||
Antimol |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 118 Регистрация: 28.7.2007 Где: Украина, Киев Репутация: 4 Всего: 4 |
А там разве вместо звездочек не знак % нужно ставить?
--------------------
Лучшее спасибо это "+" к репутации. Мой блог: ИНФОРМАТИЗАЦИЯ, и mirsovetov.net. Написание программ, исправление ошибок, статьи.... |
|||
|
||||
youriy86 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 28.1.2011 Репутация: нет Всего: нет |
Со знаком "%" вообще записи не отображаются!
Добавлено через 2 минуты и 2 секунды Кстати думал, что у меня возможно старая версия, обновил ZEOS до 6.6.6 stable. Tа же проблема... |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
||||
|
||||
youriy86 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 28.1.2011 Репутация: нет Всего: нет |
Bообще мне нужно сделать быстрый поиск. Человек вводит букву в TEdit и на его OnChange должны фильтроваться данные в TDBGridEh. K гриду привязан TZDataSet. Я подумал, что логично установить фильтр в самом датасэте. B примерах использование LIKE не показано. Залез в исходники TZDataSet, добрался до парсера, увидел LIKE в списке токенов и решил попробовать. Искал в нете, такой же вопрос задавали несколько человек, но внятного ответа так и не получили...
Это сообщение отредактировал(а) youriy86 - 30.3.2011, 09:28 |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
![]() Программист не может отличить поиск и фильтрацию. Может тебе ещё пояснить, что такое сортировка? Вначале нужно определиться, что ДЛЯ тебя или для твоих пользователей означает слово "поиск". Потому как обычному пользователю, да и программистам бывает пофиг, что поиск, что фильтрация. Если нужен поиск, то смотри в сторону locate и похожих команд. Давай рассказывай, что же всё-таки тебе или твоим пользователям нужно. Поиск или фильтрация. Тебе нужно просто отсечь ненужные записи и показать только те, которые удовлетворяют некоему условию? Да, это фильтрация. Почему ты не хочешь использовать SQL? Добавлено @ 09:34 ![]() ![]() Добавлено @ 09:35
Книги читать уже не модно и документацию читать религия не позволяет. Правильно, зачем читать? Я щас закину на несколько форумов свой вопрос, попью чайку и мне всё по быстренькому сделают. Ну-ну ![]() |
|||
|
||||
youriy86 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 28.1.2011 Репутация: нет Всего: нет |
Я планировал так:
Пользователь вводит букву и в гриде остаются только те записи в названии которых есть эта буква и т.д., то есть это фильтрация... |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
||||
|
||||
youriy86 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 28.1.2011 Репутация: нет Всего: нет |
Bообще насчет чая и всего остального ты не прав, я вообще не хотел писать что-то на форуме из-за такого отношения... Посмотри мое количество сообщений, и думаю ты поймешь как часто я "пью чай"
Добавлено через 1 минуту и 8 секунд A зачем мне использовать еще один SQL запрос? Объясни мне! Когда у меня уже выдраны все необходимые записи. Зачем мне еще раз выполнять запрос, я хочу локально отфильтровать их Добавлено через 3 минуты и 41 секунду Если бы я знал ответ на вопрос, я бы его не задавал. Я и есть чайник, и раздел этот для чайников... |
|||
|
||||
Vas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 29.6.2005 Где: Stavropol region Репутация: 23 Всего: 28 |
Ну пусть вводит, а потом тыркает применить, тогда и формируй новый SQL запрос и отображай. Зачем сразу все записи показывать? Если их миллионов пять, будешь тащить все, а потом фильтровать локально, имхо бред. -------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
|||
|
||||
youriy86 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 28.1.2011 Репутация: нет Всего: нет |
Пользователю отображаются входящие документы на подпись, их может быть штук 100 (например служебки, распоряжения и т.д.). Он должен видеть их все сразу, но допустим, какой-то из них срочный, ему звонят по телефону и говорят, документ такой-то срочно подписать, вот тут удобно воспользоваться поиском.
|
|||
|
||||
youriy86 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 28.1.2011 Репутация: нет Всего: нет |
Вообщем, как я и ожидал, нафлудили а результата никакого.
Полазил по официальному сайту ZEOS. Там на форуме уже поднимался мой вопрос с использованием like и *. Конструкция, использованная мною правильная. Пользователь, поднявший такой же вопрос на форуме, заметил, что в модуле ZMatchPattern.pas ошибка в логике функции MatchAfterStar. И именно поэтому выдаются помимо правильных результатов, еще и записи с длиной 1. Пользователь посоветовал скачать оригинальный код модуля, написанный Kevin Boylan совместно с Sergey Seroukhov... Вот ссылка: http://zeos.firmos.at/viewtopic.php?t=1763...ighlight=filter |
|||
|
||||
superVad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 735 Регистрация: 6.4.2006 Где: Черкассы, Украина Репутация: 3 Всего: 15 |
В событии onFilterRecord фильтруй все сам руками.
Мне так даже проще, чем формировать строки. Это сообщение отредактировал(а) superVad - 30.3.2011, 12:08 |
|||
|
||||
Vas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 29.6.2005 Где: Stavropol region Репутация: 23 Всего: 28 |
Боюсь, что если бы не флудили, ты бы сидел и ждал ответа, а не лазил на иностранные форумы
Ну качай и пробуй. Это сообщение отредактировал(а) Vas - 30.3.2011, 12:07 -------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
вот я тебя и спросил: покажи в документации или в примерах информацию про локальный фильтр, где используется LIKE Добавлено через 32 секунды Если ты вообще конечно читал ![]() Добавлено через 1 минуту и 48 секунд Этот раздел для всех, а не для чайников. А чайник в первую очередь должен быть читателем, а не писателем. Добавлено через 8 минут и 3 секунды ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Базы данных и репортинг" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |