Гость
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Почему не выполняет запрос / 3 сообщений из 3, страница 1 из 1
08.07.2002, 08:26
    #32035485
Рома
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не выполняет запрос
В моей базе dbf свыше 290 тыс. записей и когда я выполняю запрос

select * from asd1.dbf
where mark like 'ВАЗ2109'

программа виснет.Подскажите пожалуйста почему это происходит.

Рома.
...
Рейтинг: 0 / 0
08.07.2002, 08:33
    #32035488
Groove
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не выполняет запрос
ОПЕРАТОР LIKE

LIKE применим только к полям типа CHAR или VARCHAR, с которыми он используется чтобы находить подстроки. Т.е. он ищет поле символа чтобы видеть, совпадает ли с условием часть его строки. В качестве условия он использует групповые символы(wildkards) - специальные символы которые могут соответствовать чему-нибудь.
Имеются два типа групповых символов используемых с LIKE:

* символ подчеркивания (_)замещает любой одиночный символ. Например, 'b_t' будет соответствовать словам 'bat' или 'bit', но не будет соответствовать 'brat'.

* знак процента (%) замещает последовательность любого числа символов (включая символы нуля). Например '%p%t' будет соответствовать словам 'put', 'posit', или 'opt', но не 'spite'.
...
Рейтинг: 0 / 0
08.07.2002, 20:53
    #32035663
Cat2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не выполняет запрос
Groove объяснил все правильно, но забыл добавить, что в Вашем случае оператор LIKE не нужен, достаточно простого равенства. Равенство работает несколько быстрее. Но все равно, SELECT по DBF очень тормозная операция.

Мне представляется несколько выходов.

1. Плюнуть на SQL, создать индекс по MARK и искать с помощью Locate. Или наложить на таблицу фильтр.
2. Плюнуть на BDE и перейти на ADO. Там можно выставить TimeOut для длинного запроса.
3. Плюнуть на все и поставит SQL-сервер.

Третий способ даст наибольший эффект.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Почему не выполняет запрос / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]