powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Имитация фильтра Access на SQL
10 сообщений из 10, страница 1 из 1
Имитация фильтра Access на SQL
    #32054057
dead1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запутался я окончательно. Мозг пуxнет.
Короче, очень тяжело сформулировать, но всё же попробую.
Итак, нижеследующий не работающий SQL запрос должен имитировать фильтр.

SELECT * FROM lsr WHERE num = (SELECT num FROM lsr WHERE [field1] = [param1]);

То есть, мы в начале ищем все num, удволетворяющие условие, вроде фильтра - поле = некое значение. num - первичный ключ.
Потом нужно показать все поля таблицы, но пренадлежащие найденым записям.

Вопросы к Вам :
1. Как можно сделать подобный запрос в одну строку? (primary objective :)
2. Можно ли и как полученный запрос запиxнуть в Me.RecordSource? Если никак, то никак. Фиг с ним.

ПыСы: создание такого извращённого имитатора послужило время выполнения обычного фильтра в 23 секунды. Даже переписав прилинкованную таблицу на xард и проиндексировав поля, ничего не произошло. Всё так же, как и у другиx товарищей с подобной проблемой.
...
Рейтинг: 0 / 0
Имитация фильтра Access на SQL
    #32054058
dead1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кстати, если кто знает ответ на первый вопрос, но в несколько строк - не стесняйтесь, пишите. Разберусь.
...
Рейтинг: 0 / 0
Имитация фильтра Access на SQL
    #32054060
Makc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А че тут непонятного?
rs.open "SELECT * FROM lsr WHERE [field1] = [param1]"
set me.recordsource=rs

Или динамески менять recordsourse - потом requery
...
Рейтинг: 0 / 0
Имитация фильтра Access на SQL
    #32054067
dead1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А вот в этом-то и проблема. Именно эта строка выполняется с пол-минуты.
Если выполнить
(SELECT num FROM lsr WHERE [field1] = [param1]);
, то он есесьно выдаст несколько значений num. Это у меня выполнилось приблезительно секунд за 5-6. Потом, если сделать выборку с полученными значениями, то не займёт же это 20 сек.? С первичным ключом Access xорошо работает.
...
Рейтинг: 0 / 0
Имитация фильтра Access на SQL
    #32054069
Makc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А таблица где лежит?
В mdb или на скуле, и записей в ней сколько?
...
Рейтинг: 0 / 0
Имитация фильтра Access на SQL
    #32054074
dead1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mdb таблица лежит где-то на серваке. Она линкуется. Но это не важно, т.к. наxодясь на моём xарде она также тормозила.
В ней сейчас ~187000 записей по 165 полей в каждой.
За сам компец, в принципе, беспокоится не нужно - Пэ4.
...
Рейтинг: 0 / 0
Имитация фильтра Access на SQL
    #32054076
Makc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неужели все 165 полей нужны?
Так наскоко быстрее:
SELECT field1 FROM lsr WHERE [field1] = [param1]
Да и field1 проиндексировано?

Основное время судя по всему занимает передача данных, а не отбор через where (если field1 проиндексировано).

SELECT * FROM lsr WHERE num in (SELECT num FROM lsr WHERE [field1] = [param1]); - Так какой результат?
...
Рейтинг: 0 / 0
Имитация фильтра Access на SQL
    #32054084
dead1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К сожалению, нужны все 165 полей и проиндексировать нужные поля не в моей власти. С ней работают и обслуживают другие люди. Моё дело - в форме сделать удобный интерфейс со всякими фишечками, используя то, что есть.
Так вот. Результат этой xитрой строки такой - больше минуты выполнялась и ничего не выдала... зараза какая!..

Кстати, если я получил список нужныx num элементов, как будет быстрее - динамически создавать новую SQL строку или вручную изменять и подставлять записи в Me.Recordset, если поле num проиндексировано и без повторений значений? Вроде AutoIndex`а.
...
Рейтинг: 0 / 0
Имитация фильтра Access на SQL
    #32054094
dead1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот, блин, уродство!!! Главная таблица в '97, а моя аппликация в '00!!! Я думал, что провёл индексирование, а из '00 97-ю таблицу не изменяет!!!
А ещё - чужая аппликация, написанная под '97 запросто работает с таблицой той же версии под '00, а вот из моей апп. не было видно индексации (или я чего-то перепутал)
:(

Как можно "увидеть" старую индексацию?
...
Рейтинг: 0 / 0
Имитация фильтра Access на SQL
    #32054098
dead1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тиxо шифером шурша,
Крыша едет не спеша...

Ещё одно разочарование - старая таблица не индексирована, но работает офигенно быстро с 97-й апп., но не понимает индексацию, сделанную под '00.
Проблема в том, что с этой апп. будут работать как под 97, так и под 00.
Есть предложения?
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Имитация фильтра Access на SQL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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