![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
есть такой кусок кода
tSpis - TTable sField: string;
в таблице есть еще 4 поля, по корым нужно вести поиск. Locate не предлагать, это не интересно...(слабо ищет) к стати в DRKB не нашел. ![]() |
|||
|
||||
Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 14 Всего: 154 |
Интересно, к чему такой гемморой. чем тебе
не нравиться? Нормально он ищет. А если поля не индексированные, то только им. Ну или делай SQL запрос. -------------------- |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
вопрос следующий: в столбце есть запись "Игры для DOS"
Так вот мне нужно искать не "игры", а "DOS". И неужели метод Locate сможет найти что-то в середине или в конце строки? |
|||
|
||||
gray_k |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1015 Регистрация: 9.1.2003 Где: Москва Репутация: 3 Всего: 22 |
Locate не сможет. А называется такая штука "контекстный поиск". Это большая и сложная задача, над которой бьются многие математики. Можешь поискать алгоритмы в инете.
-------------------- С уважением. Gray. |
|||
|
||||
Akella |
|
||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Процедура поиска по всем полям
Допер наконец-то
Пример использования
|
||||
|
|||||
x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 19 Всего: 22 |
да, по сравнению с локейтом - будем просто летать
![]() у тебя не на всех СУБД и не на всех версиях дельфей этот код будет работать. (из-за использования RecNo). лечге организовать поиск черрез стандартный запрос с испольщованием конструкции LIKE в where-clause. -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 14 Всего: 154 |
Да, в таком случае не парься, и используй SQL запрос.
-------------------- |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Так RecNo можно и не использовать.
Если это не шутка, то почему, мне кажеться Locate будет искать быстрее. Странно, почему разработчики Delphi, не придумали такой метод поиска? |
|||
|
||||
x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 19 Всего: 22 |
dsergey, сорри, это была именно шютка. Locate будет, по возможности, цеплять индексы, твой код будет делать тупой перебор - есс-но, для индексированных таблиц твой вариант будет работать медленее.
гадать, о чём думали разработчики багланда сложно. скорее всего, просто не захотели заморачиваться, ибо на уровне SQL запроса соответствующий механизм предусмотрен. А SQL можно прикрутить практически ко всему, единственный, известный мне случай, когда SQL не применим в принципе, это использование TClientDataSet'ов. Но они и не предназначены для таких задач. -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |