powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Почему не выполняет запрос
3 сообщений из 3, страница 1 из 1
Почему не выполняет запрос
    #32035485
Рома
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В моей базе dbf свыше 290 тыс. записей и когда я выполняю запрос

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

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

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

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

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

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

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

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

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


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