![]() |
|
![]() ![]() ![]() |
|
NiJazz |
|
|||
![]() Jazz coder ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2286 Регистрация: 10.8.2003 Где: Москва Репутация: нет Всего: 23 |
Как можно с помощью методов TTable найти нужную запись по вхождению подстроки?
Например, %инвест% -> Инвестиция, инвестиционный, проминвестхолдинг и т.д. Мождно такое сделать, не прибегая к запросам типа select * from Table where field like "%инвест%"? PS Locate и Lookup ищут по первым символам ![]() |
|||
|
||||
NiJazz |
|
|||
![]() Jazz coder ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2286 Регистрация: 10.8.2003 Где: Москва Репутация: нет Всего: 23 |
Забыл сказать, что поиск должен вестись без учёта регистра.
Кстати, такое возможно в моём SQL запросе? |
|||
|
||||
z-END |
|
|||
![]() прафесар™ ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3014 Регистрация: 13.3.2003 Где: Венья, Пиетари Репутация: 1 Всего: 102 |
насчет SQL сказать ниче не могу, а вот про Table:
Table1.onFilterRecord:
Добавлено @ 18:40 ЗЫ если тебе нужен поиск по маске то тогда надобно вместо Pos использовать MatchesMask из модуля Masks -------------------- Каждый чилавек пасвоему праф...а памоему НЕТ! |
|||
|
||||
Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 17 Всего: 162 |
NiJazz Какая база данных?
-------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
Bes |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 2 Всего: 7 |
2NiJazz:
Такое можно сделать с помощью свойства Filter На счет скул-запроса, я всегда считал, что можно. По умолчанию если база не чувствительна к регистру, то он будет работать как ты написал, если база чувствительна на регистр то нужно воспользоваться строковыми функциями Ucase, Upper,... зависит от базы. Как раз мы тут спорим на этот счет с dSergey-ем - не знаю, к чему придем... |
|||
|
||||
Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 17 Всего: 162 |
Для начала нужно узнать о какой базе данных идет речь, а потом спорить. -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
Bes |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 2 Всего: 7 |
2Alex: А мы уже узнали :-) речь не об этой теме, а о предыдущей, где ты оставил два поста подряд.
|
|||
|
||||
NiJazz |
|
|||
![]() Jazz coder ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2286 Регистрация: 10.8.2003 Где: Москва Репутация: нет Всего: 23 |
БД типа Paradox. Filter не подходит, мне не нужна фильтрация. Интересно одно, можно ли сделать активной ту запись, которая соответствует параметрам поиска.
|
|||
|
||||
Bes |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 2 Всего: 7 |
2NiJazz:
Ааа... тогда стмори тему "Поиск по таблице, но не фильтр" я там то же самое спрашивал. |
|||
|
||||
NiJazz |
|
|||
![]() Jazz coder ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2286 Регистрация: 10.8.2003 Где: Москва Репутация: нет Всего: 23 |
Bes
Locate всё равно позволяет искать только по первым символам. |
|||
|
||||
Bes |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 2 Всего: 7 |
2NiJazz: Там был вариант и не только по первым, читай внимательно, там в середине Innok предложил. его 2-й пост.
|
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
Нужно использовать пробежку по всем записям с использованием POS
|
|||
|
||||
Bes |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 2 Всего: 7 |
2dsergey:
А если записей 800000 записей |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
Ничего с этим не поделаешь. Реальный пример. БД Paradox (телефонный справочник г.Харькова) около 650 тысяч записей. Так вот. TTable работает быстрее TQuery. TQuery только таблицу открывает 16 минут. Комп: Cel 1700,256Мб, винт WD 40Гб UDMA5, WinXP SP1. Так что тебе решать, что использовать TTable или TQuery. Добавлено @ 11:02 И фильтрацию c TTable можно проводить средствами языка высокого уровня, т.е. средствами Delphi, а не SQL. Ничего против SQL я не имею. А БД в 800 тысяч записей желательно перевести во IB |
|||
|
||||
Bes |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 2 Всего: 7 |
2dsergey: Странно, всегда думал что Квери в отличии от тэйбла как раз не открывает таблицу полностью, а возвращает только небольшое к-во записей в зависимости от запроса. Надо бы какую-нить тему по теории создать..
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Базы данных и репортинг" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |